ssh 命令仅执行本地系统的命令。
例如:
ssh [email protected] df -h
这招奏效了,但之后 ssh 协议就挂了。挂了大约 10 分钟,然后又恢复正常。我收到的错误消息如下。
ssh: connect to host mydomain.com port 22: Operation timed out
答案1
问题是,在本地计算机上运行的 ssh-agent 挂起了,阻止您尝试建立另一个连接。我认为ssh-agent
当您的 ssh 连接终止并且进程结束时应该退出,但由于某种原因,OS X 实现挂起了。出于安全原因,您的用户的其他实例无法使用此 ssh-agent 实例。
我认为,如果这种情况也发生在 Ubuntu 中,解决方案就是在完成 ssh 会话后,在启动另一个 ssh 会话之前,简单地终止 ssh-agent 进程。
如果ssh-agent
挂起成为一个问题,您可以在会话结束后使用以下命令自动结束它:
~$ ssh username@hostname && kill $(pgrep ssh-agent)
[编辑]
如果您要连接的客户端只有一个使用 ssh 的用户,并且您正在从一台具有来自不同用户的多个并发 ssh 连接的计算机进行连接,则该命令适用。您将需要使用:
~$ ssh username@hostname && kill $(ps -U your_local_username | grep ssh-agent | grep -oP "^\d+")