Merge pull request #2601 from JonathanBeverley/jmb/features

This commit is contained in:
Eugene 2020-07-29 17:45:05 +02:00 committed by GitHub
commit ae3870e297
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 14 additions and 15 deletions

2
.gitignore vendored
View file

@ -28,3 +28,5 @@ docs/api
.electron-symbols .electron-symbols
sentry.properties sentry.properties
sentry-symbols.js sentry-symbols.js
terminus-ssh/util/pagent.exe

View file

@ -9,10 +9,12 @@
"typings": "typings/index.d.ts", "typings": "typings/index.d.ts",
"scripts": { "scripts": {
"build": "webpack --progress --color", "build": "webpack --progress --color",
"watch": "webpack --progress --color --watch" "watch": "webpack --progress --color --watch",
"postinstall": "xcopy /i node_modules\\ssh2\\util\\pagent.exe util\\"
}, },
"files": [ "files": [
"dist" "dist",
"util/pagent.exe"
], ],
"author": "Eugene Pankov", "author": "Eugene Pankov",
"license": "MIT", "license": "MIT",

View file

@ -36,6 +36,7 @@ export interface SSHConnection {
skipBanner?: boolean skipBanner?: boolean
disableDynamicTitle?: boolean disableDynamicTitle?: boolean
jumpHost?: string jumpHost?: string
agentForward?: boolean
algorithms?: {[t: string]: string[]} algorithms?: {[t: string]: string[]}
} }

View file

@ -83,6 +83,11 @@
.title X11 forwarding .title X11 forwarding
toggle([(ngModel)]='connection.x11') toggle([(ngModel)]='connection.x11')
.form-line
.header
.title Allow Agent Forwarding
toggle([(ngModel)]='connection.agentForward')
.form-line .form-line
.header .header
.title Tab color .title Tab color

View file

@ -16,10 +16,6 @@ import { PromptModalComponent } from '../components/promptModal.component'
import { PasswordStorageService } from './passwordStorage.service' import { PasswordStorageService } from './passwordStorage.service'
import { SSHTabComponent } from '../components/sshTab.component' import { SSHTabComponent } from '../components/sshTab.component'
try {
var windowsProcessTreeNative = require('windows-process-tree/build/Release/windows_process_tree.node') // eslint-disable-line @typescript-eslint/no-var-requires, no-var
} catch { }
@Injectable({ providedIn: 'root' }) @Injectable({ providedIn: 'root' })
export class SSHService { export class SSHService {
private logger: Logger private logger: Logger
@ -187,14 +183,7 @@ export class SSHService {
let agent: string|null = null let agent: string|null = null
if (this.hostApp.platform === Platform.Windows) { if (this.hostApp.platform === Platform.Windows) {
const pageantRunning = new Promise<boolean>(resolve => {
windowsProcessTreeNative.getProcessList(list => { // eslint-disable-line block-scoped-var
resolve(list.some(x => x.name === 'pageant.exe'))
}, 0)
})
if (await pageantRunning) {
agent = 'pageant' agent = 'pageant'
}
} else { } else {
agent = process.env.SSH_AUTH_SOCK as string agent = process.env.SSH_AUTH_SOCK as string
} }
@ -208,7 +197,7 @@ export class SSHService {
privateKey: privateKey || undefined, privateKey: privateKey || undefined,
tryKeyboard: true, tryKeyboard: true,
agent: agent || undefined, agent: agent || undefined,
agentForward: !!agent, agentForward: session.connection.agentForward && !!agent,
keepaliveInterval: session.connection.keepaliveInterval, keepaliveInterval: session.connection.keepaliveInterval,
keepaliveCountMax: session.connection.keepaliveCountMax, keepaliveCountMax: session.connection.keepaliveCountMax,
readyTimeout: session.connection.readyTimeout, readyTimeout: session.connection.readyTimeout,