diff --git a/terminus-ssh/src/api.ts b/terminus-ssh/src/api.ts index 8136018c..90e5b051 100644 --- a/terminus-ssh/src/api.ts +++ b/terminus-ssh/src/api.ts @@ -3,6 +3,7 @@ import { BaseSession } from 'terminus-terminal' export interface SSHConnection { name?: string host: string + port: number user: string password?: string privateKey?: string diff --git a/terminus-ssh/src/components/editConnectionModal.component.pug b/terminus-ssh/src/components/editConnectionModal.component.pug index 881a5cf4..4a76e6d9 100644 --- a/terminus-ssh/src/components/editConnectionModal.component.pug +++ b/terminus-ssh/src/components/editConnectionModal.component.pug @@ -13,6 +13,14 @@ [(ngModel)]='connection.host', ) + .form-group + label Port + input.form-control( + type='number', + placeholder='22', + [(ngModel)]='connection.post', + ) + .form-group label Username input.form-control( diff --git a/terminus-ssh/src/components/sshModal.component.pug b/terminus-ssh/src/components/sshModal.component.pug index ff1f160e..809b6599 100644 --- a/terminus-ssh/src/components/sshModal.component.pug +++ b/terminus-ssh/src/components/sshModal.component.pug @@ -3,7 +3,7 @@ type='text', [(ngModel)]='quickTarget', autofocus, - placeholder='Quick connect: [user@]host', + placeholder='Quick connect: [user@]host[:port]', (keyup.enter)='quickConnect()' ) diff --git a/terminus-ssh/src/components/sshModal.component.ts b/terminus-ssh/src/components/sshModal.component.ts index 3f712b0f..935e4285 100644 --- a/terminus-ssh/src/components/sshModal.component.ts +++ b/terminus-ssh/src/components/sshModal.component.ts @@ -31,12 +31,18 @@ export class SSHModalComponent { quickConnect () { let user = 'root' let host = this.quickTarget + let port = 22 if (host.includes('@')) { [user, host] = host.split('@') } + if (host.includes(':')) { + port = parseInt(host.split(':')[1]) + host = host.split(':')[0] + } + let connection: SSHConnection = { name: this.quickTarget, - host, user, + host, user, port } window.localStorage.lastConnection = JSON.stringify(connection) this.connect(connection) diff --git a/terminus-ssh/src/components/sshSettingsTab.component.ts b/terminus-ssh/src/components/sshSettingsTab.component.ts index 16212f3a..020f6a9a 100644 --- a/terminus-ssh/src/components/sshSettingsTab.component.ts +++ b/terminus-ssh/src/components/sshSettingsTab.component.ts @@ -21,6 +21,7 @@ export class SSHSettingsTabComponent { let connection: SSHConnection = { name: '', host: '', + port: 22, user: 'root', } let modal = this.ngbModal.open(EditConnectionModalComponent) diff --git a/terminus-ssh/src/services/ssh.service.ts b/terminus-ssh/src/services/ssh.service.ts index 30ca35c4..b8d550eb 100644 --- a/terminus-ssh/src/services/ssh.service.ts +++ b/terminus-ssh/src/services/ssh.service.ts @@ -100,6 +100,7 @@ export class SSHService { ssh.connect({ host: connection.host, + port: connection.port || 22, username: connection.user, password: privateKey ? undefined : '', privateKey,