使用 VS Code 远程 SSH 进行 2FA?

Dat*_*ice 5 two-factor-authentication visual-studio-code

我正在使用远程 SSH扩展来连接到远程计算机。此远程计算机受 Duo 的双因素身份验证保护。当我在终端(VS Code 之外)中使用 SSH 时,我能够完美登录 - 终端会提示我完成 2FA 过程。但是,在 VS Code 中,当我使用该扩展时,我无法登录。输入我的 SSH 主机名和 ID 后,VS Code 界面会一遍又一遍地提示我输入密码,并且不会再继续下去。

以前有人遇到过这个问题吗?我很想知道是否有现有的解决方案。不幸的是,2FA 由我的公司管理,我无法将其关闭。

小智 9

进入 VS Code 中的设置并启用此设置,remote.SSH.showLoginTerminal。这将启动终端,以便通过 2FA 登录。


L.L*_*urg 7

我遇到了同样的问题,并通过使用 SSH ControlMaster for Single Single-On 修复了它。

\n

如果您使用连接到相关机器,<user_name>@<host_name>您只需将以下内容添加到您的~/.ssh/config

\n
Host <nickname>\n    User <user_name>\n    HostName <host_name>\n    ControlMaster auto\n    ControlPath ~/.ssh/%r@%h:%p\n
Run Code Online (Sandbox Code Playgroud)\n

如果您现在在运行的终端中打开一个新会话,系统ssh <nickname>将要求您输入密码和 2FA 密钥。但所有其他后续 ssh 会话(包括通过 ssh 运行的 svn、rsync 等)将搭载初始连接,无需重新身份验证。

\n

现在,您可以在 VS Code 中Remote-SSH: Connect to Host...从命令面板中进行选择(F1、\xe2\x87\xa7\xe2\x8c\x98P),然后只需输入:<nickname>,ControlMaster 将自动使用已建立的连接来连接您。\n在此输入图像描述

\n

就我而言,我选择的昵称是“ody”。连接 VSC 后,远程开发扩展会在左下角显示以下内容,让我浏览远程计算机上的文件。

\n

在此输入图像描述

\n

来自FASCR

\n

请注意,如果退出或终止初始连接,所有后续连接都依赖于初始连接 \xe2\x80\x94,所有其他连接也会消失。如果意外发生,这显然会很烦人。通过在后台设置主连接可以轻松避免\xe2\x80\x99s:

\n

ssh -CX -o ServerAliveInterval=30 -fN <nickname>

\n

-fN 使其在身份验证后进入后台并闲置。(C 表示压缩,Y 表示 X 转发,o ServerAliveInterval=30 防止连接丢失,与 ControlMaster 无关,但几乎总是有帮助。)

\n

请注意,所有端口转发(包括 X 显示转发)必须由初始连接设置且无法更改。

\n


Dd *_*d H 0

您可以使用~/.ssh/config文件来配置主机名和密钥。但不知道有没有办法保存密码方便。