diff --git a/terminus-ssh/src/services/passwordStorage.service.ts b/terminus-ssh/src/services/passwordStorage.service.ts index 3c57b24e..053588ce 100644 --- a/terminus-ssh/src/services/passwordStorage.service.ts +++ b/terminus-ssh/src/services/passwordStorage.service.ts @@ -5,14 +5,26 @@ import * as keytar from 'keytar' @Injectable({ providedIn: 'root' }) export class PasswordStorageService { async savePassword (connection: SSHConnection, password: string): Promise { - return keytar.setPassword(`ssh@${connection.host}`, connection.user, password) + let key = `ssh@${connection.host}` + if (connection.port) { + key = `ssh@${connection.host}:${connection.port}` + } + return keytar.setPassword(key, connection.user, password) } async deletePassword (connection: SSHConnection): Promise { - await keytar.deletePassword(`ssh@${connection.host}`, connection.user) + let key = `ssh@${connection.host}` + if (connection.port) { + key = `ssh@${connection.host}:${connection.port}` + } + await keytar.deletePassword(key, connection.user) } async loadPassword (connection: SSHConnection): Promise { - return keytar.getPassword(`ssh@${connection.host}`, connection.user) + let key = `ssh@${connection.host}` + if (connection.port) { + key = `ssh@${connection.host}:${connection.port}` + } + return keytar.getPassword(key, connection.user) } }