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

如何使用包含空格的SSH密码?

如何使用包含空格的SSH密码?

其实SSH本身是支持带空格的密码的,你遇到的问题大概率是输入时的细节问题,或者没掌握正确的输入/传递方式,下面给你几个可行的解决思路:

  • 交互式输入时确保准确:因为SSH输入密码时是隐藏的,看不到输入的内容,很容易在输入带空格的密码时出错——比如多打了空格、漏打了空格,或者空格位置不对。比如你的密码是I am superuser,输入时要慢一点,仔细确认每个字符和空格的位置,避免误输入。

  • 如果需要在命令行直接传递密码(不推荐):如果你一定要在命令行里直接指定带空格的密码,需要用引号把整个密码括起来,或者给每个空格加转义符\。比如用sshpass工具的话:

    • 用双引号包裹:sshpass -p "I am superuser" ssh <user>@<hostname/IP>
    • 转义空格:sshpass -p I\ am\ superuser ssh <user>@<hostname/IP>
      注意:这种方式非常不安全,因为密码会被记录在命令历史里,不建议日常使用。
  • 更推荐的替代方案:使用SSH密钥对:带空格的密码本身记忆和输入都麻烦,不如直接配置SSH密钥登录,既不用每次输密码,安全性也更高。操作步骤很简单:

    1. 在本地终端执行ssh-keygen,一路按回车(不需要设置密钥密码,或者按需设置)生成密钥对;
    2. 把本地的公钥(默认是~/.ssh/id_rsa.pub里的内容)复制到服务器的~/.ssh/authorized_keys文件中;
    3. 之后再用ssh <user>@<hostname/IP>登录,就不用输密码了。

关于你提到的现象:输入正确的带空格密码一直提示重试,而错误密码三次就断开——这很可能是你自以为输入的是正确密码,但实际上因为空格的问题输错了(比如多了一个空格或者少了一个),而服务器设置了MaxAuthTries 3,所以错误密码输三次就断开;而你每次输入带空格的“正确密码”其实都是错误的,所以会一直提示重试,直到你主动取消。

备注:内容来源于stack exchange,提问作者DarkDead

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 11:44:05