【问题标题】:2FA with VS Code Remote-SSH?2FA 与 VS Code 远程 SSH?
【发布时间】:2021-11-15 12:45:26
【问题描述】:

我正在使用 Visual Studio Code 中的 Remote-SSH 扩展来连接到远程计算机。这台远程机器受 Duo 的双重身份验证保护。当我在终端(在 VS Code 之外)中 SSH 时,我可以完美登录 - 终端会提示我完成 2FA 过程。但是,当我使用扩展程序时,在 VS Code 中,我无法登录。输入我的 SSH 主机名和 ID 后,VS Code 界面会一遍又一遍地提示我输入密码,并且不会超过该点。

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

【问题讨论】:

    标签: visual-studio-code two-factor-authentication


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      Host <nickname>
          User <user_name>
          HostName <host_name>
          ControlMaster auto
          ControlPath ~/.ssh/%r@%h:%p
      

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

      您现在可以在 VS Code 中,从命令面板(F1,⇧⌘P)中选择Remote-SSH: Connect to Host...,然后输入:&lt;nickname&gt;,ControlMaster 将使用已经建立的连接自动连接您。

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

      来自FASCR:

      请注意,所有后续连接都依赖于初始连接 - 如果您退出或终止初始连接,所有其他连接也会死亡。如果意外发生,这显然会很烦人。通过在后台设置主连接很容易避免:

      ssh -CX -o ServerAliveInterval=30 -fN &lt;nickname&gt;

      -fN 使其在验证后进入后台并处于空闲状态。 (C 表示压缩,Y 表示 X 转发,o ServerAliveInterval=30 以防止连接断开与 ControlMaster 无关,但几乎总是有帮助。)

      请注意,所有端口转发,包括X显示转发,都必须由初始连接设置,不能更改。

      【讨论】:

        猜你喜欢
        • 2021-01-25
        • 2021-03-19
        • 2021-01-10
        • 2022-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多