ssh挂起而没有密码提示-在root或其他帐户中均可运行


14

我有基于SSH密钥的登录正常。然后,我更改了计算机上的主机名,基于密钥的登录停止了。似乎很有意义。密钥可能依赖于我的旧主机名。因此,我删除了所有密钥以及〜/ .ssh /中的所有文件,并重新生成了它们(并更改了我连接到的服务器上的authorized_keys)

现在,无论何时我尝试ssh,无论我尝试在哪个位置ssh挂起,它都将挂起而没有密码提示,即使我没有设置基于密钥的登录的服务器也是如此。.ssh / config中没有任何内容。

而且,当我“ su-”扎根时,ssh可以完美运行。完全没有问题。这仅在我的用户帐户上发生。

以下是ssh的一些调试信息

ssh -vv mylogin@myremoteserver.com
OpenSSH_5.2p1,OpenSSL 0.9.8k 2009年3月25日
debug1:读取配置数据/Users/myname/.ssh/config
debug1:读取配置数据/ usr / etc / ssh_config
......
debug1:主机“ myremoteserver.com”是已知的,并且与RSA主机密钥匹配。
debug1:在/Users/myname/.ssh/known_hosts:1中找到密钥
debug2:位设置:512/1024
debug1:ssh_rsa_verify:签名正确
debug2:kex_derive_keys
debug2:set_newkeys:模式1
debug1:发送了SSH2_MSG_NEWKEYS
debug1:需要SSH2_MSG_NEWKEYS
debug2:set_newkeys:模式0
debug1:收到SSH2_MSG_NEWKEYS
debug1:发送了SSH2_MSG_SERVICE_REQUEST
debug2:service_accept:ssh-userauth
debug1:收到SSH2_MSG_SERVICE_ACCEPT

然后就挂在这里.....

这是挂起的末端附近的dtruss(类似于strace,但对于OSX):sudo dtruss ssh -vv mylogin@myremoteserver.com

选择(0x4,0x508200,0x0,0x0,0x0)= 1 0
读取(0x3,“ $ \ 222 \ 351 {L \ 363 \ 261 \ 25063sN \ 216 \ 300 @ q7 \ 203 \ 276b \ 257 \ 354 \ 337 \ 356 \ 260!{\ 342 \ 017 \ 271 = \ 222, \ 245 \ 347t \ 006 \ 225 \ 257 \ 333; \ 204 \ 020] \ 242 \ 005z#\ 0“,0x2000)= 48 0
write(0x2,“ debug2:service_accept:ssh-userauth \ r \ n \ 0”,0x26)= 38 0
connect(0x4,0xBFFFEEA2,0x6A)= 0 0
写(0x4,“ \ 0”,0x4)= 4 0
写(0x4,“ \ v5 \ 004 \ 0”,0x1)= 1 0
read(0x4,“ \ 0”,0x4)= -1 Err#4

似乎正在尝试ro读取某些内容,并且挂在此上。如果有人有任何建议或想法,我将不胜感激!


我在Snow Leopard(带有Apple最新补丁的10.6.8版本)上也遇到了同样的问题。仅在尝试通过VPN连接到服务器时才会发生。重新启动可以暂时解决该问题,但不可避免地会再次出现。服务器DNS查找不是问题(经过测试)。它与客户端上SSH的状态有关。杀死ssh-agent或切换到root不能解决问题。
丹尼尔(Daniel)

Answers:


9

ssh客户端挂起您的帐户而不挂起其他帐户(root)的原因可能是因为您的ssh-agent出了问题。要么ssh-agent没有运行,要么其配置有某种错误。

要对此进行确认,可以尝试以下操作:

unset SSH_AUTH_SOCK
ssh mylogin@myremoteserver.com

如果随后要求您在ssh_key中输入密码,则意味着您的ssh-agent存在问题。

另请参阅我有关此相关问题的文章


这为我做了工作!但是,每次重新启动计算机后都需要这样做。您知道永久解决此问题的方法吗?
2014年

@JohanDettmar检查我的链接文章及其包含的建议。如果对您没有太大帮助,则最好提出一个新问题,以更详细的信息描述您的问题。
托宁

7

我可以对反向DNS感兴趣吗?

本质上,客户端在服务器上执行反向DNS,反之亦然。

我提出一个测试:

通过编辑/ etc / ssh / sshd_config并确保将“ UseDNS”设置为“ no”来禁用服务器上的DNS查找。

运行“ service ssh reload”(或导致ssh守护进程重新读取配置的任何方法),然后重试。

偶然地,经过很长一段时间后最终提示您并没有发生,不是吗?

您可能要检查的另一件事是查看服务器上/ etc / hosts的内容,以确保那里没有错误。


1

检查〜/ .ssh目录及其中文件的权限。您的默认umask可能太宽容,并且在重新创建文件时,可能会无意中赋予了它们错误的权限。我自己被这件事烧死了几次。我曾经使用过的ssh客户端(或服务器)都没有给出关于此的有用的错误消息...


谢谢你的提示。看起来我的烫发是一样的。我可以使用ssh fine w /我的根帐户,并且我验证了这些权限与该权限相同。奇怪的是,它只是挂了,什么也没说。感谢您的尝试!
saveraver

1

您的客户端(和服务器)上有可用的磁盘空间吗?

df -h


谢谢。是。足够的空间。超过100个演出。感谢您的提示。
saveraver

1

我有一个类似的问题。

ssh domain.ip:user.name

似乎我可以通过强制这样的登录名来绕过此问题。

ssh -v domain.ip -l user.name

1

对我来说,升级到Snow Leopard可以解决此问题。因此,我认为这与OSX中的错误有关。


0

如果是由于保存了密钥,那么您应该可以将其从known_hosts文件中的〜/ .ssh目录中删除。只要找到条目并将其删除,它就会再次提示您。

另一方面,当主机与记录的内容不匹配时,它应该发出警告。

我在OS X上遇到主机名查找失败的问题;连接等待时间太长而超时,或者当提示确实出现时,它已经等待了这么长时间,在断开连接之前,您大约需要十秒钟输入密码。尽管有人建议将有问题的主机添加到主机文件中,但我始终无法找到它。我想这只是“ OS X的DNS查找故障”,应该可以容忍……如果其他人遇到此问题并解决了它,我很想知道。


谢谢巴特!因此,我基本上删除了.ssh内的所有内容(无论是明智还是不明智),现在都什么都没有了。它似乎仍然冻结并继续挂起。由于我也已经吹走了known_hosts,因此它首先询问我是否要继续连接,将密钥放入known_hosts文件中,然后挂在与以前相同的位置。我将快速更新我的回复以澄清这一点。非常感谢您的帮助。
saveraver

1
听起来确实像是我在MacBook上遇到的故障。它似乎在某种程度上与DNS查找有关,最终我放弃了,只是暂时停顿了一下,然后再连接,希望以后可以解决。
巴特·西尔弗斯

0

检查服务器上的日志。它通常在/var/log/auth.log(Debian / Ubuntu)或/var/log/secure(RedHat / CentOS)中。连接的任何问题通常都记录在这里。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.