tabby/tabby-ssh/src/components/sshProfileSettings.component.pug
2021-07-05 23:56:38 +02:00

195 lines
7.7 KiB
Plaintext

ul.nav-tabs(ngbNav, #nav='ngbNav')
li(ngbNavItem)
a(ngbNavLink) General
ng-template(ngbNavContent)
.d-flex.w-100(*ngIf='!useProxyCommand')
.form-group.w-100.mr-4
label Host
input.form-control(
type='text',
[(ngModel)]='profile.options.host',
)
.form-group
label Port
input.form-control(
type='number',
placeholder='22',
[(ngModel)]='profile.options.port',
)
.alert.alert-info(*ngIf='useProxyCommand')
.mr-auto Using a proxy command instead of a network connection
.form-group
label Username
input.form-control(
type='text',
[(ngModel)]='profile.options.user',
)
.form-group
label Authentication method
.btn-group.mt-1.w-100(
[(ngModel)]='profile.options.auth',
ngbRadioGroup
)
label.btn.btn-secondary(ngbButtonLabel)
input(type='radio', ngbButton, [value]='null')
i.far.fa-lightbulb
.m-0 Auto
label.btn.btn-secondary(ngbButtonLabel)
input(type='radio', ngbButton, [value]='"password"')
i.fas.fa-font
.m-0 Password
label.btn.btn-secondary(ngbButtonLabel)
input(type='radio', ngbButton, [value]='"publicKey"')
i.fas.fa-key
.m-0 Key
label.btn.btn-secondary(ngbButtonLabel, ng:if='hostApp.platform !== Platform.Web')
input(type='radio', ngbButton, [value]='"agent"')
i.fas.fa-user-secret
.m-0 Agent
label.btn.btn-secondary(ngbButtonLabel)
input(type='radio', ngbButton, [value]='"keyboardInteractive"')
i.far.fa-keyboard
.m-0 Interactive
.form-line(*ngIf='!profile.options.auth || profile.options.auth === "password"')
.header
.title Password
.description(*ngIf='!hasSavedPassword') Save a password in the keychain
.description(*ngIf='hasSavedPassword') There is a saved password for this connection
button.btn.btn-outline-success.ml-4(*ngIf='!hasSavedPassword', (click)='setPassword()')
i.fas.fa-key
span Set password
button.btn.btn-danger.ml-4(*ngIf='hasSavedPassword', (click)='clearSavedPassword()')
i.fas.fa-trash-alt
span Forget
.form-group(*ngIf='!profile.options.auth || profile.options.auth === "publicKey"')
label Private keys
.list-group.mb-2
.list-group-item.d-flex.align-items-center.p-1.pl-3(*ngFor='let path of profile.options.privateKeys')
i.fas.fa-key
.no-wrap.mr-auto {{path}}
button.btn.btn-link((click)='removePrivateKey(path)')
i.fas.fa-trash
button.btn.btn-secondary((click)='addPrivateKey()')
i.fas.fa-folder-open
span Add a private key
li(ngbNavItem)
a(ngbNavLink) Ports
ng-template(ngbNavContent)
ssh-port-forwarding-config(
[model]='profile.options.forwardedPorts',
(forwardAdded)='onForwardAdded($event)',
(forwardRemoved)='onForwardRemoved($event)'
)
li(ngbNavItem)
a(ngbNavLink) Advanced
ng-template(ngbNavContent)
.form-line(*ngIf='!useProxyCommand')
.header
.title Jump host
select.form-control([(ngModel)]='profile.options.jumpHost')
option(value='') None
option([ngValue]='x.id', *ngFor='let x of jumpHosts') {{x.name}}
.form-line(ng:if='hostApp.platform !== Platform.Web')
.header
.title X11 forwarding
toggle([(ngModel)]='profile.options.x11')
.form-line(ng:if='hostApp.platform !== Platform.Web')
.header
.title Agent forwarding
toggle([(ngModel)]='profile.options.agentForward')
.form-line
.header
.title Skip MoTD/banner
.description Will prevent the SSH greeting from showing up
toggle([(ngModel)]='profile.options.skipBanner')
.form-line
.header
.title Keep Alive Interval (Milliseconds)
input.form-control(
type='number',
placeholder='0',
[(ngModel)]='profile.options.keepaliveInterval',
)
.form-line
.header
.title Max Keep Alive Count
input.form-control(
type='number',
placeholder='3',
[(ngModel)]='profile.options.keepaliveCountMax',
)
.form-line
.header
.title Ready Timeout (Milliseconds)
input.form-control(
type='number',
placeholder='20000',
[(ngModel)]='profile.options.readyTimeout',
)
.form-line(*ngIf='!profile.options.jumpHost && hostApp.platform !== Platform.Web')
.header
.title Use a proxy command
.description Command's stdin/stdout is used instead of a network connection
toggle([(ngModel)]='useProxyCommand')
.form-group(*ngIf='useProxyCommand && !profile.options.jumpHost')
label Proxy command
input.form-control(
type='text',
[(ngModel)]='profile.options.proxyCommand',
)
li(ngbNavItem)
a(ngbNavLink) Ciphers
ng-template(ngbNavContent)
.form-line.align-items-start
.header
.title Ciphers
.w-75
div(*ngFor='let alg of supportedAlgorithms.cipher')
checkbox([text]='alg', [(ngModel)]='algorithms.cipher[alg]')
.form-line.align-items-start
.header
.title Key exchange
.w-75
div(*ngFor='let alg of supportedAlgorithms.kex')
checkbox([text]='alg', [(ngModel)]='algorithms.kex[alg]')
.form-line.align-items-start
.header
.title HMAC
.w-75
div(*ngFor='let alg of supportedAlgorithms.hmac')
checkbox([text]='alg', [(ngModel)]='algorithms.hmac[alg]')
.form-line.align-items-start
.header
.title Host key
.w-75
div(*ngFor='let alg of supportedAlgorithms.serverHostKey')
checkbox([text]='alg', [(ngModel)]='algorithms.serverHostKey[alg]')
li(ngbNavItem)
a(ngbNavLink) Login scripts
ng-template(ngbNavContent)
login-scripts-settings([options]='profile.options')
div([ngbNavOutlet]='nav')