VSCode远程SSH连Linode失败及WSL后续无法SSH问题求助
问题1解答
- 最可能的原因是Linode服务器或其内置防火墙触发了IP临时封禁:VSCode远程连接失败时,通常会在短时间内发起多次SSH尝试(比如密钥重试、自动密码验证等),这种高频请求会被Linode的安全机制(或服务器上的
fail2ban工具)判定为恶意攻击,临时封禁你的本地IP,封禁时长一般为24小时,所以次日能恢复连接。 - 次要可能:VSCode远程扩展修改了WSL的SSH客户端配置(如
~/.ssh/config),导致后续连接失败,但这种情况不会自动恢复,因此IP封禁的概率更高。
问题2解答
针对ssh: connect to host 143.42.59.227 port 22: Connection refused错误,按以下步骤排查:
- 确认服务器SSH服务状态
通过Linode控制台的LISH终端登录服务器,执行:
如果服务未运行,启动并设置开机自启:systemctl status sshdsystemctl start sshd systemctl enable sshd - 检查防火墙与安全组
- Linode Cloud Firewall:确保入站规则允许22端口的TCP流量。
- 服务器本地防火墙:若使用
ufw,执行ufw allow 22开放端口;若用iptables,添加对应规则。
- 修正SSH配置文件
编辑服务器上的/etc/ssh/sshd_config,确认以下配置:
修改后重启服务:Port 22 # 未被修改为其他端口 PasswordAuthentication yes # 开启密码认证(测试用,后续可改回密钥) PubkeyAuthentication yes PermitRootLogin no # 若用root登录需改为yes,但不推荐systemctl restart sshd - 修复密钥权限
服务器上的密钥文件权限错误会导致认证失败,执行:chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys - 排查VSCode配置
- 删除VSCode远程资源管理器中现有连接,重新添加,手动输入
ssh 你的服务器用户名@143.42.59.227。 - 检查WSL中的
~/.ssh/config是否有错误配置,比如错误的Host别名或端口。
- 删除VSCode远程资源管理器中现有连接,重新添加,手动输入
- 解除IP封禁
若之前的多次失败尝试触发fail2ban,执行以下命令解封本地IP:fail2ban-client set sshd unbanip 你的本地公网IP
内容的提问来源于stack exchange,提问作者Jonas Rossen
相关产品推荐
相关产品推荐

