我无法连接到 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_config
未 HostbasedAuthentication
设置时,可能会出现此错误消息。yes
我不知道为什么。
另一个问题可能是:
检查 $USER/.ssh 目录的权限,该目录应由用户拥有并被 chmod 700。authorized_keys 文件也应被 chmod 700 并由用户拥有