You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WSL中使用SSHPass自动启动并登录SSH会话

解决WSL启动自动SSH登录的问题

一、修复当前Windows Terminal配置的报错

错误0x80070002本质是WSL无法正确解析你直接写入的命令串——Windows Terminal会把整个/usr/bin/sshpass ...当作一个单一命令去查找,而非拆解执行。你需要用shell来包裹这个命令:

修改settings.json中的commandline字段为:

"commandline": "bash -c \"/usr/bin/sshpass -p 'your_actual_password' ssh -o StrictHostKeyChecking=no user@host\""

如果密码包含特殊字符,用转义双引号包裹密码更安全:

"commandline": "bash -c '/usr/bin/sshpass -p \"your_actual_password\" ssh -o StrictHostKeyChecking=no user@host'"

先在WSL终端里手动执行bash -c "/usr/bin/sshpass -p 'password' ssh user@host"确认能正常登录,再更新配置。

二、更可靠的自动登录方案(推荐)

虽然你提到要明文存储密码,但还是建议优先选择更安全的方案;如果坚持要用密码,也可以用兼容性更好的方式替代sshpass:

方案1:SSH密钥对免密登录(最安全)

  1. 在WSL里生成密钥对:
    ssh-keygen -t ed25519
    
    连续按回车跳过密钥密码设置,实现完全免密。
  2. 把公钥复制到目标服务器:
    ssh-copy-id user@host
    
    第一次输入服务器密码完成配置,之后就能直接免密登录。
  3. 修改Windows Terminal的commandline为:
    "commandline": "ssh user@host"
    

方案2:Expect脚本实现密码自动输入

如果必须用密码登录,expect比sshpass的兼容性更好:

  1. 在WSL里创建登录脚本~/.ssh/autologin.sh:
    #!/usr/bin/expect
    set timeout 10
    spawn ssh user@host
    expect "Password:"
    send "your_actual_password\r"
    interact
    
  2. 给脚本添加执行权限:
    chmod +x ~/.ssh/autologin.sh
    
  3. 修改Windows Terminal的commandline为:
    "commandline": "bash -c \"~/.ssh/autologin.sh\""
    

三、关于命令执行时机的问题

没错,Windows Terminal中WSL配置的commandline是在Linux内核初始化的早期执行的,此时系统环境(比如部分环境变量、后台服务)可能还没完全加载。如果要等Linux初始化完成后再执行命令,最稳妥的方法是把命令添加到shell的启动脚本中:

  1. 打开WSL的~/.bashrc(如果用zsh则是~/.zshrc):
    nano ~/.bashrc
    
  2. 在文件末尾添加你的登录命令:
    /usr/bin/sshpass -p 'your_actual_password' ssh -o StrictHostKeyChecking=no user@host
    
  3. 保存退出后,下次启动WSL会话时,shell初始化完成就会自动执行这个命令。

额外排查点

  • 确认sshpass的实际路径:在WSL里执行which sshpass,如果输出不是/usr/bin/sshpass,要把配置里的路径改成实际路径(比如/usr/local/bin/sshpass)。
  • 先手动测试命令:在WSL终端里完整执行登录命令,确认能正常登录后再放到配置或启动脚本中。

内容的提问来源于stack exchange,提问作者Kenneth Rhodes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:33:24