我正在使用Visual Studio Code中的Remote-SSH扩展连接到远程机器。这台远程机器受到Duo的双因素认证保护。当我在终端中进行SSH登录(不在VS Code中),我能够完美地登录 - 终端会提示我通过2FA过程。然而,在使用扩展时,我无法登录。在输入我的SSH主机名和ID之后,VS Code界面一遍又一遍地提示我输入密码,但没有进展。
有人遇到过这个问题吗?我很想知道是否存在现有的解决方案。不幸的是,2FA由我的公司管理,我无法关闭它。
有人遇到过这个问题吗?我很想知道是否存在现有的解决方案。不幸的是,2FA由我的公司管理,我无法关闭它。
进入 VS Code 设置并启用此设置,remote.SSH.showLoginTerminal。这将弹出终端以便通过 2FA 登录。
Host <nickname>
User <user_name>
HostName <host_name>
ControlMaster auto
ControlPath ~/.ssh/%r@%h:%p
ssh <nickname>
,则会要求您输入密码和2FA密钥。但是,所有其他后续的ssh会话(包括运行在ssh上的svn、rsync等)都将依赖于初始连接,无需重新进行身份验证。Remote-SSH: Connect to Host...
,然后简单地输入:<nickname>
,ControlMaster将自动使用已经建立的连接连接您。
在我的情况下,我选择的昵称是“ody”。连接VSC的远程开发扩展后,左下角会显示以下内容,并允许我浏览远程计算机上的文件。
来自FASCR:
请注意,所有后续连接都依赖于初始连接 - 如果您退出或关闭初始连接,则所有其他连接也将终止。如果意外发生这种情况,显然会很烦人。通过在后台设置主连接可以轻松避免这种情况:
ssh -CX -o ServerAliveInterval=30 -fN <nickname>
-fN 让它进入后台并保持空闲状态,身份验证后。(C代表压缩,Y代表X转发,o ServerAliveInterval=30是为了防止断开连接,与ControlMaster无关但几乎总是有帮助的。)
请注意,包括X显示转发在内的所有端口转发都必须由初始连接设置,并且不能更改。
您可以使用~/.ssh/config
文件来配置您的主机名和密钥。但我不知道是否有一种方法可以保存密码以方便使用。