From 7e470461eb137b7d62eec41a5103306838975393 Mon Sep 17 00:00:00 2001 From: Levi Yan Date: Tue, 7 Jan 2025 23:22:06 +0800 Subject: [PATCH] feat: extract the hostname of devstar domain for local SSH key naming --- src/user.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/user.ts b/src/user.ts index a7048d2..61734b3 100644 --- a/src/user.ts +++ b/src/user.ts @@ -14,11 +14,21 @@ export default class User { private userToken: string | undefined; private usernameKey: string = 'devstarUsername' private userTokenKey: string = 'devstarUserToken' + private devstarHostname: string; constructor(context: vscode.ExtensionContext) { this.context = context; this.username = this.context.globalState.get(this.usernameKey); this.userToken = this.context.globalState.get(this.userTokenKey); + + // 提取devstar domain的主域名,用于本地ssh key的命名 + let devstarDomainFromConfig: string|undefined; + let devstarDomainURL: string; + devstarDomainFromConfig = vscode.workspace.getConfiguration('devstar').get('devstarDomain') + // 如果没有配置devstar domain,则默认domain为https://devstar.cn + devstarDomainURL = (devstarDomainFromConfig === undefined || devstarDomainFromConfig === "") ? 'https://devstar.cn' : devstarDomainFromConfig; + let parsedUrl = new URL(devstarDomainURL); + this.devstarHostname = parsedUrl.hostname.replace(/\./g, '_'); //提取hostname,并用下划线替换. } private isLogged() { @@ -61,7 +71,7 @@ export default class User { return ''; } - return path.join(os.homedir(), '.ssh', `id_rsa_${this.username}`) + return path.join(os.homedir(), '.ssh', `id_rsa_${this.username}_${this.devstarHostname}`) } public getUserPublicKeyPath(): string { @@ -69,7 +79,7 @@ export default class User { return ''; } - return path.join(os.homedir(), '.ssh', `id_rsa_${this.username}.pub`) + return path.join(os.homedir(), '.ssh', `id_rsa_${this.username}_${this.devstarHostname}.pub`) } public existUserPublicKey(): boolean {