From c8686e47dc85d7bf9f6b3427cb86986c67c6ca21 Mon Sep 17 00:00:00 2001 From: Eugene Pankov Date: Sat, 27 Oct 2018 15:46:37 +0200 Subject: [PATCH] ppk passphrase support (fixes #281) --- terminus-ssh/src/components/promptModal.component.ts | 4 +++- terminus-ssh/src/services/ssh.service.ts | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/terminus-ssh/src/components/promptModal.component.ts b/terminus-ssh/src/components/promptModal.component.ts index b40845c5..e67c10d3 100644 --- a/terminus-ssh/src/components/promptModal.component.ts +++ b/terminus-ssh/src/components/promptModal.component.ts @@ -14,7 +14,9 @@ export class PromptModalComponent { ) { } ngOnInit () { - this.input.nativeElement.focus() + setTimeout(() => { + this.input.nativeElement.focus() + }) } ok () { diff --git a/terminus-ssh/src/services/ssh.service.ts b/terminus-ssh/src/services/ssh.service.ts index 8a49a924..6b5addb0 100644 --- a/terminus-ssh/src/services/ssh.service.ts +++ b/terminus-ssh/src/services/ssh.service.ts @@ -49,7 +49,11 @@ export class SSHService { if (privateKey) { this.logger.info('Loaded private key from', privateKeyPath) - if (privateKey.includes('ENCRYPTED')) { + let encrypted = privateKey.includes('ENCRYPTED') + if (privateKeyPath.toLowerCase().endsWith('.ppk')) { + encrypted = encrypted || privateKey.includes('Encryption:') && !privateKey.includes('Encryption: none') + } + if (encrypted) { let modal = this.ngbModal.open(PromptModalComponent) modal.componentInstance.prompt = 'Private key passphrase' modal.componentInstance.password = true -- GitLab