使用 VSCode Remote-SSH 进行远程开发时,最令人沮丧的莫过于反复弹出密码输入框,最终连接失败。本文将深入剖析导致 SSH连接失败 的常见原因,并提供一套在 Linux 环境下手把手操作的解决方案,即使是小白也能轻松搞定。
当你配置好 Remote-SSH 并尝试连接远程 Linux 服务器时,终端不断提示输入密码,即使密码正确也无法进入。这通常与 SSH 认证机制有关:反复输入密码 往往意味着服务器拒绝了你的密钥或密码认证,陷入了无限循环。常见原因包括:本地未正确配置 SSH 密钥、远程服务器禁止密码登录、known_hosts 冲突,或远程服务器 Linux SSH配置 限制了认证方式。
在终端手动执行 ssh user@host,观察是否同样反复提示密码。如果直接 SSH 能成功,说明问题可能出在 VSCode 的配置上;如果也失败,则继续以下步骤。
生成密钥对(若已有则跳过):ssh-keygen -t rsa -b 4096 -C "your_email@example.com"。然后将公钥复制到远程服务器:ssh-copy-id user@host(或手动追加到 ~/.ssh/authorized_keys)。这一步能避免每次输入密码,从根本上解决 反复输入密码 的烦恼。
编辑本地 ~/.ssh/config 文件,添加以下内容(指定用户、密钥路径、禁用某些认证尝试):
Host myserver HostName 192.168.1.100 User yourname IdentityFile ~/.ssh/id_rsa PreferredAuthentications publickey PasswordAuthentication no 这样 VSCode Remote-SSH 连接时就会优先使用密钥,避免密码循环。
如果远程服务器重建过或 IP 变更,本地 ~/.ssh/known_hosts 中旧的主机密钥会导致连接失败。可以删除对应条目(或使用 ssh-keygen -R hostname),重新连接时会自动更新。
登录远程服务器,编辑 /etc/ssh/sshd_config,确认以下设置:
PubkeyAuthentication yes (允许密钥认证)PasswordAuthentication yes 或 no(若你只用密钥可设为 no,但调试时可先设为 yes)ChallengeResponseAuthentication no UsePAM yes (通常保持 yes)修改后重启 SSH 服务:sudo systemctl restart sshd 或 sudo service ssh restart。这一步是对 Linux SSH配置 的核心调整。
在 VSCode 设置中搜索 remote.SSH.showLoginTerminal,勾选以显示 SSH 登录日志,便于观察具体卡在哪一步。同时确保 Remote-SSH 插件为最新版。
完成上述步骤后,再次尝试通过 VSCode Remote-SSH 连接,应该不会再出现 SSH连接失败 或反复弹窗的情况。如果问题依旧,请检查防火墙(是否放行 22 端口)以及 SELinux 设置。本文提到的四个关键词:VSCode Remote-SSH、SSH连接失败、反复输入密码、Linux SSH配置,是解决此类问题的核心切入点。希望这篇教程能帮你扫清远程开发的障碍!
本文由主机测评网于2026-02-22发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/20260226653.html