Files
certd/packages/ui/certd-server/src/plugins/plugin-host/access/ssh-access.ts

105 lines
2.2 KiB
TypeScript
Raw Normal View History

import { AccessInput, IAccess, IsAccess } from '@certd/pipeline';
import { ConnectConfig } from 'ssh2';
@IsAccess({
name: 'ssh',
title: '主机登录授权',
desc: '',
input: {},
})
export class SshAccess implements IAccess, ConnectConfig {
@AccessInput({
title: '主机地址',
component: {
placeholder: '主机域名或IP地址',
},
required: true,
})
host!: string;
@AccessInput({
title: '端口',
value: 22,
component: {
name: 'a-input-number',
placeholder: '22',
},
rules: [{ required: true, message: '此项必填' }],
})
port!: number;
@AccessInput({
title: '用户名',
value: 'root',
rules: [{ required: true, message: '此项必填' }],
})
username!: string;
@AccessInput({
title: '密码',
component: {
name: 'a-input-password',
vModel: 'value',
},
encrypt: true,
helper: '登录密码或密钥必填一项',
})
password!: string;
@AccessInput({
title: '私钥登录',
helper: '私钥或密码必填一项',
component: {
name: 'a-textarea',
vModel: 'value',
},
encrypt: true,
})
privateKey!: string;
@AccessInput({
title: '私钥密码',
helper: '如果你的私钥有密码的话',
component: {
name: 'a-input-password',
vModel: 'value',
},
encrypt: true,
})
passphrase!: string;
2024-06-27 16:38:43 +08:00
@AccessInput({
2024-09-29 11:53:03 +08:00
title: 'socks代理',
helper: 'socks代理配置格式socks5://user:password@host:port',
component: {
name: 'a-input',
vModel: 'value',
},
encrypt: false,
})
socksProxy!: string;
2024-06-27 16:38:43 +08:00
@AccessInput({
title: '是否Windows',
helper: '如果是Windows主机请勾选此项',
component: {
name: 'a-switch',
vModel: 'checked',
},
})
windows = false;
2024-06-27 16:38:43 +08:00
@AccessInput({
title: '命令编码',
helper: '如果是Windows主机且出现乱码了请尝试设置为GBK',
component: {
name: 'a-select',
vModel: 'value',
options: [
{ value: '', label: '默认' },
{ value: 'GBK', label: 'GBK' },
{ value: 'UTF8', label: 'UTF-8' },
],
2024-06-27 16:38:43 +08:00
},
})
encoding: string;
}
new SshAccess();