这可能会有所帮助。从vs code文档“远程开发技巧和技巧”中获取:
https://code.visualstudio.com/docs/remote/troubleshooting
启用备用SSH身份验证方法
如果您正在连接到一个SSH远程主机,并且要么:
- 使用双因素身份验证连接
- 使用密码身份验证
- 在SSH代理未运行或无法访问时使用带有密码短语的SSH密钥
那么VS Code应自动提示您输入所需信息。如果您没有看到提示,请在VS Code中启用remote.SSH.showLoginTerminal
设置。此设置在VS Code运行SSH命令时显示终端。然后,当终端出现时,您可以输入身份验证代码、密码或密码短语。
如果您仍然遇到问题,则可能需要在settings.json
中设置以下属性并重试:
"remote.SSH.showLoginTerminal": true,
"remote.SSH.useLocalServer": false
如果你使用的是macOS或Linux系统,并且希望减少输入密码或令牌的频率,你可以在本地机器上启用“ControlMaster”功能,以便OpenSSH在单个连接上运行多个SSH会话。
要启用“ControlMaster”,请按照以下步骤操作:
Add an entry like this to your SSH config file:
Host *
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 600
Then run mkdir -p ~/.ssh/sockets
to create the sockets folder.
设置SSH代理
如果您使用带有密码短语的密钥连接到SSH主机,则应确保在本地运行SSH代理。VS Code将自动将您的密钥添加到代理中,因此每次打开远程VS Code窗口时都不必输入密码短语。
要验证代理是否正在运行并且可以从VS Code的环境中访问,请在本地VS Code窗口的终端中运行ssh-add -l
。您应该会看到代理中的密钥列表(或者是没有密钥的消息)。如果代理没有运行,请按照以下说明启动它。启动代理后,请务必重新启动VS Code。
Windows:
要在Windows上自动启用SSH代理,请启动本地管理员PowerShell并运行以下命令:
Set-Service ssh-agent -StartupType Automatic
Start-Service ssh-agent
Get-Service ssh-agent
现在代理将会在登录时自动启动。
Linux:
要在后台启动SSH代理,请运行以下命令:
eval "$(ssh-agent -s)"
为了在登录时自动启动SSH代理,请将以下内容添加到您的~/.bash_profile
文件中:
if [ -z "$SSH_AUTH_SOCK" ]; then
RUNNING_AGENT="`ps -ax | grep 'ssh-agent -s' | grep -v grep | wc -l | tr -d '[:space:]'`"
if [ "$RUNNING_AGENT" = "0" ]; then
ssh-agent -s &> .ssh/ssh-agent
fi
eval `cat .ssh/ssh-agent`
fi
macOS:
默认情况下,代理应该在macOS上运行。
2020年10月8日