ssh 客户端的‘服务器不允许漫游’是什么意思?

ssh 客户端的‘服务器不允许漫游’是什么意思?

我无法连接到 SSH 服务器实例,并且详细输出包含debug1: Roaming not allowed by server。出现了以下可预测且可避免的问题:

  • ssh漫游意味着从不同类型的网络访问服务。我无法弄清楚在Ubuntu 14.04 上运行的 6.6.1 客户端的详细输出上下文中它意味着什么。
  • 目前尚不清楚这是否是一个错误,以及是否导致登录失败(不过,我不想在这里深入讨论连接失败;没有任何输出消息表明这是错误的 – ssh> 更多问题和时间浪费 – 您已被警告!)
  • site:www.openssh.org roaming在 google 上查询,结果为空,手册页也不包含该术语。即使有文档记录,使用它也是无稽之谈,因为它的歧义性!

这个消息是什么意思?我该如何使用它来调试大量其他高度模糊、不直观且无用的 SSH 错误和其他消息?

答案1

这实际上并不是一个错误消息。这只是一个调试消息,告诉您服务器不接受漫游连接。

漫游显然是 2009 年左右添加到 OpenSSH 的一项实验性功能。该功能的目的是让 ssh 客户端断开与服务器会话的连接,然后从另一个位置恢复会话。请参阅这里档案馆) 进行一些讨论。谷歌搜索 ssh、漫游和“Martin Forssén”会出现其他页面。它看起来似乎没有被积极开发。我怀疑 SSH 开发人员从未记录过它,因为它是实验性的,可能还没有完成。

通过检查 OpenSSH 源代码,可以发现有一个未记录的客户端选项UseRoaming,可以将其设置为是或否。将“UseRoaming no”行添加到客户端配置(通常是您的.ssh/config文件)应该可以抑制调试消息。

我不明白为什么服务器端HostbasedAuthentication设置会控制服务器是否接受漫游连接。

更新:客户端漫游支持显然是计算机漏洞暴露报告的主题,CVE-2016-0777。OpenSSH 版本 5.4 至 7.1p1 存在漏洞。用户应升级到 OpenSSH 7.1p2 或更高版本。无法升级的用户应通过在其 ssh 客户端配置中添加“UseRoaming no”来禁用客户端中的漫游。请参阅以下内容:

答案2

CentOS6 上的 openssh 5.3 的更新日志中有一条注释:

2009/06/27
     添加客户端选项 UseRoaming。它目前还不执行任何操作,但会
     控制客户端是否尝试使用漫游(如果在
     服务器。来自 Martin Forssen。

答案3

@ILMostro_7 chmod 600 authorized_keys 对我来说工作正常。

对于那些通过谷歌搜索“服务器不允许漫游”并访问此处并使用 Linux(Ubuntu)客户端的人来说,你可以修复警告和然后看:-

Agent admitted failure to sign using the key

治疗方法如下:https://help.github.com/articles/error-agent-admitted-failure-to-sign/

    # start the ssh-agent in the background
    $ eval "$(ssh-agent -s)"
    # Agent pid 59566 (displays process id)
    $ ssh-add
    # Enter passphrase for /home/you/.ssh/id_rsa: [tippy tap]
    # Identity added: /home/you/.ssh/id_rsa (/home/you/.ssh/id_rsa)

'#' = 评论。you = 你的用户名。[tippy tap] = humo[u]r? = 按 Enter 键。

我希望这对其他人也有帮助,就像这个问答对我有帮助一样。

答案4

当服务器上/etc/ssh/sshd_configHostbasedAuthentication设置时,可能会出现此错误消息。yes

我不知道为什么。

另一个问题可能是:

检查 $USER/.ssh 目录的权限,该目录应由用户拥有并被 chmod 700。authorized_keys 文件也应被 chmod 700 并由用户拥有

相关内容