【发布时间】:2021-05-12 18:33:56
【问题描述】:
我正在使用 vscode 连接到远程主机。我使用 Remote-SSH (ms-vscode-remote.remote-ssh) 扩展来执行此操作。每次想连接远程主机,都需要输入密码。
有没有办法将ssh密码保存到vscode?p>
【问题讨论】:
我正在使用 vscode 连接到远程主机。我使用 Remote-SSH (ms-vscode-remote.remote-ssh) 扩展来执行此操作。每次想连接远程主机,都需要输入密码。
有没有办法将ssh密码保存到vscode?p>
【问题讨论】:
要在 Visual Studio Code 上为 ssh 设置无密码身份验证,请执行以下步骤。
这些示例假设如下(替换为您的实际详细信息)
Host: myhost
Local User: localuser
Remote User: remoteuser
Remote User Home Dir: remoteuserhome
SSH Port: 22
我使用的是 Mac,所以 Windows 会有些不同,但基本是一样的
告诉 VS Code 和你的机器你将如何连接到 myhost
编辑:
/Users/<localuser>/.ssh/config
添加:
Host <myhost>
HostName <myhost>
User <remoteuser>
Port 22
PreferredAuthentications publickey
IdentityFile "/Users/<localuser>/.ssh/<myhost>_rsa"
接下来使用 OpenSSL 之类的东西生成公钥和私钥
ssh-keygen -q -b 2048 -P "" -f /Users/<localuser>/.ssh/keys/<host>_rsa -t rsa
这应该生成两个文件:
<host>_rsa (private key)
<host>_rsa.pub (public key)
私钥(
需要将公钥(
我是用 FTP 做的,但你可以随意做,但它需要在服务器上的类似目录中结束。
在服务器上
服务器上有一个文件,里面有一个公钥列表。
<remoteuserhome>/.ssh/authorized_keys
如果已经存在,则需要将
如果它不存在,您可以使用
如果一切按计划进行,您现在应该可以进入终端并输入
ssh <remoteuser>@<host>
你应该在没有密码的情况下进入。这同样适用于 Visual Studio Code。
【讨论】:
让我们先回答OP的问题:
如何“保存 ssh 密码”?
由于没有“ssh密码”这回事,所以“如何保存远程用户密码”的答案是:
VSCode 不支持。
VSCode 建议setup an SSH Agent 以缓存密码(以防您使用加密密钥)
但如果公钥未正确注册到远程帐户~/.ssh/authorized_key,SSH 守护程序将默认使用远程用户凭据(用户名/密码)。
称为PasswordAuthentication,通常是远程用户密码。
SSH 会话不支持缓存该密码。
当使用 HTTPS URL 时,它仅受 Git 凭证助手支持。
(它遵从操作系统底层凭证管理器)
但是我不知道使用 SSH 时有远程用户密码缓存。
作为Chagai Friedlandercomments,原问题的答案是:
不,但您可以使用 SSH 密钥,这样会更好。
说到 SSH 密钥:
“ssh 密码”:假设您指的是一个 ssh 密码短语,这意味着您已经创建了一个加密的私钥,那么“保存 ssh 密码”将意味着 缓存该密码短语 em> 以免每次要访问远程主机时都输入。
首先检查您是否可以设置ssh-agent,以便缓存保护您的私钥的密码。
见“VSCode: Setting up the SSH Agent”
这假设您使用的是 SSH 密钥,如“VSCode: Connect to a remote host”中所述,并且您没有直接使用远程用户密码。
使用 SSH 密钥意味着其公钥将被注册到远程帐户 ~/.ssh/authorized_keys 文件中。
这部分是 OP 最终接受的解决方法:在远程用户帐户上注册公钥,并缓存本地私钥密码。
【讨论】:
PasswordAuthentication。并且在 SSH 会话的 VSCode 中似乎不支持缓存该密码。