窝似鲨手 2024-03-29 13:06 采纳率: 0%
浏览 218

Vscode 远程连接虚拟机 ssh连接超时

Vscode 远程连接虚拟机 ssh连接超时,总是提示ssh连接超时 有没有会的 帮助一下

img

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-03-29 13:06
    关注

    引自免费微信小程序:皆我百晓生

    VSCode中设置SSH远程连接超时的时间可以通过以下几个步骤完成:

    1. 安装相应的SSH插件:

      • 首先,在VSCode的插件列表中找到并搜索 "Git Bash Terminal (SSH)" 或 "Git Bash Shell (SSH)" 插件。
      • 在搜索结果页面中点击 "+" 或 "Install now" 来下载并安装此插件。
    2. 更新VSCode版本至最新版本:

      • 更新VSCode以确保其具有最新的功能和修复了可能影响远程连接的错误。右键单击VSCode图标,选择"Update VS Code" 并按照提示进行操作。等待更新完成后重启VSCode。
    3. 设置SSH配置:

      • 创建一个新的 .ssh/config 文件位于 ~/.ssh/config 目录下(如果你没有这个目录,可以创建一个新文件并在命令行中执行以下命令)。
      # ~/.ssh/config
      
      Host *
        User <username>
        IdentityFile ~/.ssh/id_rsa
        Port 22
      
      Host <hostname>
        HostName <hostname-or-ip>
        Port 22
      
      Host localhost
        HostName localhost
        Port 22
      
      Keyring ~/.ssh/id_rsa
      
      • Host 对象中添加 IdentityFile 设置为要使用的SSH密钥文件路径。这通常是保存SSH密钥文件的本地位置(例如,根目录 ~/.ssh/id_rsa),也可以指定主机名或IP地址作为主机名。
      • Port 设置为你想要的SSH默认端口。通常,连接到Linux主机后端服务的端口是22。
    4. 检查SSH配置:

      • 点击左上角的 "Preferences" 菜单,然后导航到 "Editor" 部分。在那里,您应该能看到SSH配置窗口。
      • 右键点击"SSH"标签并选择"Set Configuration..."。
      • 在新的弹出窗口中,取消勾选 "Use SSH Authentication",然后在 "Authentication" 标签下,点击 "Add or Remove Users and Groups"。
      • 在 "Users and Groups" 对话框中,点击 "Add" 添加新用户,输入用户名并设置密码。将新用户及其密码设置为您的SSH公钥。
      • 在 "SSH密钥" 对话框中,点击 "Add" 添加新的SSH密钥,包含公钥信息(包含公钥文件路径)。在这个例子中,我们将SSH公钥存储在一个名为id_rsa.pub的文件中。
    5. 测试SSH配置:

      • 使用 ssh 命令连接到远程主机。例如,使用以下命令在Windows/Linux系统中登录SSH服务器:
      ssh username@<hostname>
      
      • 如果一切正常,你应该看到一条类似于以下的消息:
      Connecting to remote server...
      Local machine is connected to the remote server via SSH.
      ...
      
      id_rsa public key detected for user username on remote server.
      ...
      

      您可以看到 "id_rsa public key detected for user username on remote server." 表明已成功添加SSH公钥到远程主机。

    6. 调整SSH配置:

      • 定义一个全局环境变量 SSH_KEYFILESSH_PORT ,其中 SSH_KEYFILE 应该是你刚刚添加的SSH密钥文件路径,例如 ${workspaceFolder}/.ssh/id_rsa.pub。在System Settings > Preferences > editor,在右侧窗口中找到并打开 "SSH Configuration" 对话框。

      • 在这里,您可以查看当前SSH配置,并根据需要进行更改,包括以下几点:

      • 修改 User 属性:将特定的SSH用户名替换为您刚刚添加的用户,如下所示:

        User: <username>
        IdentityFile: ${workspaceFolder}/.ssh/id_rsa.pub
        Port: 22
        
      • Keyring 属性中,如果您在步骤4中设置了多个SSH密钥,您可以在这里将它们逐一删除,只保留其中一个。对于已添加的SSH公钥,可以在此字段中删除KeyPair(即SSH密钥对)。

      • 删除 Allowpty 配置项,因为 sshd 防火墙通常不会允许远程用户通过穿孔板设备运行SSH客户端。如需继续远程连接,应启用 Allowpty 配置项,如下所示:

        Allowpty: true
        
    7. 应用上述更改:

      • 单击 "Apply" 或 "OK" 关闭 SSH Configuration 对话框,然后重新打开它以验证更改是否生效。
      • 现在,使用 ssh 命令连接到远程主机,确认是否成功。例如,使用以下命令登录SSH服务器:
      ssh username@<hostname>
      
      • 如果一切正常,你应该看到一条类似以下的消息:
      Connecting to remote server...
      Local machine is connected to the remote server via SSH.
      ...
      
      [12:21:38.232] Using authentication type publickey.
      You have successfully authenticated using your RSA private key, identity file (/root/.ssh/id_rsa)
      

      如果没有看到这条消息,检查SSH配置是否正确,特别是密钥信息设置是否正确,以及防火墙设置是否允许SSH客户端穿透。

    8. 清除缓存和重启VSCode:

      • 删除当前工作空间中的所有~/.ssh文件(如果有的话),以防文件覆盖问题:

        rm -rf ~/.ssh/*
        
      • 启动VSCode并再次尝试远程连接。首先,打开 VSCode,然后按快捷键 F2 导航到 "Editor" 部分。在左侧菜单栏中,选择 "Window" -> "Preferences"。在右侧窗口中,切换到 "General" 或者 "Remote Development" 分类。取消勾选 "Use SSH Authentication" 并重新加载偏好设置。

      • SSH Configuration 对话框中,确认网络选项已启用于连接远程主机。如果有多个SSH密钥,您可以在其中删除已禁用的密钥。

    9. 持续监控SSH状态:

      • 预防SSH连接超时的问题,可以考虑以下策略:
        • 设置定时任务(如每天早上/晚上)自动启动VSCode连接远程主机,而不是每次使用时手动连接。
        • 对于长时间未操作的文件,尝试断开连接并重试连接。在断开连接后,设置一个过期时间(例如30分钟),以防止连接被频繁中断。
        • 将本地控制台连接线缆远离计算机或移动到不易受SSH干扰的位置,减少干扰。
        • 关闭并重新启动防火墙和NAT防火墙,这些功能可能会阻止某些远程连接(除非您信任本地源的IP地址范围)。

    通过遵循上述步骤,您的VSCode将能够有效地解决SSH远程连接超时的问题。当然,具体实践可能因配置差异而异,以上示例是一个基本指南,建议根据实际情况进行适当调整。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月29日

悬赏问题

  • ¥15 C语言使用vscode编码错误
  • ¥15 用KSV5转成本时,如何不生成那笔中间凭证
  • ¥20 ensp怎么配置让PC1和PC2通讯上
  • ¥50 有没有适合匹配类似图中的运动规律的图像处理算法
  • ¥15 dnat基础问题,本机发出,别人返回的包,不能命中
  • ¥15 请各位帮我看看是哪里出了问题
  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
  • ¥15 uniapp的h5项目写一个抽奖动画
  • ¥15 hadoop中启动hive报错如下怎么解决