2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 13:47:15 +08:00

feat: ssh支持私钥密码,close #774

This commit is contained in:
2026-01-08 23:24:04 +08:00
parent 3afc00be2f
commit 89ace2360c
5 changed files with 61 additions and 14 deletions

View File

@@ -15,6 +15,7 @@ const model = ref({
user: 'root',
password: '',
key: '',
passphrase: '',
remark: ''
})
@@ -32,6 +33,7 @@ const handleSubmit = () => {
user: 'root',
password: '',
key: '',
passphrase: '',
remark: ''
}
window.$bus.emit('ssh:refresh')
@@ -80,14 +82,22 @@ const handleSubmit = () => {
>
</n-select>
</n-form-item>
<n-form-item v-if="model.auth_method == 'password'" :label="$gettext('Username')">
<n-form-item :label="$gettext('Username')">
<n-input v-model:value="model.user" placeholder="root" />
</n-form-item>
<n-form-item v-if="model.auth_method == 'password'" :label="$gettext('Password')">
<n-input v-model:value="model.password" type="password" show-password-on="click" />
</n-form-item>
<n-form-item v-if="model.auth_method == 'publickey'" :label="$gettext('Private Key')">
<n-input v-model:value="model.key" type="textarea" />
<n-input v-model:value="model.key" type="textarea" :rows="5" />
</n-form-item>
<n-form-item v-if="model.auth_method == 'publickey'" :label="$gettext('Key Passphrase')">
<n-input
v-model:value="model.passphrase"
type="password"
show-password-on="click"
:placeholder="$gettext('Leave empty if key has no passphrase')"
/>
</n-form-item>
<n-form-item :label="$gettext('Remarks')">
<n-input v-model:value="model.remark" type="textarea" />

View File

@@ -16,6 +16,7 @@ const model = ref({
user: 'root',
password: '',
key: '',
passphrase: '',
remark: ''
})
@@ -44,6 +45,7 @@ watch(show, async () => {
model.value.user = data.config.user
model.value.password = data.config.password
model.value.key = data.config.key
model.value.passphrase = data.config.passphrase || ''
model.value.remark = data.remark
}
})
@@ -86,14 +88,22 @@ watch(show, async () => {
>
</n-select>
</n-form-item>
<n-form-item v-if="model.auth_method == 'password'" :label="$gettext('Username')">
<n-form-item :label="$gettext('Username')">
<n-input v-model:value="model.user" placeholder="root" />
</n-form-item>
<n-form-item v-if="model.auth_method == 'password'" :label="$gettext('Password')">
<n-input v-model:value="model.password" type="password" show-password-on="click" />
</n-form-item>
<n-form-item v-if="model.auth_method == 'publickey'" :label="$gettext('Private Key')">
<n-input v-model:value="model.key" type="textarea" />
<n-input v-model:value="model.key" type="textarea" :rows="5" />
</n-form-item>
<n-form-item v-if="model.auth_method == 'publickey'" :label="$gettext('Key Passphrase')">
<n-input
v-model:value="model.passphrase"
type="password"
show-password-on="click"
:placeholder="$gettext('Leave empty if key has no passphrase')"
/>
</n-form-item>
<n-form-item :label="$gettext('Remarks')">
<n-input v-model:value="model.remark" type="textarea" />