几个星期以来,我一直面临一个有趣的问题。我们的部分舰队只能通过跳跃主机才能到达。
过去,我使用 ssh -A 从我的工作站登录跳转主机并维持长时间会话时没有遇到任何问题 [是的,我知道这是不好的做法,我在这里不是为了讲授坏习惯 =}],并按预期从那里连接到其他机器而无需输入密码。
现在,我经常会通过 uxterm 中的活动会话连接到跳转主机,这会给我一个
Permission denied (publickey)
如果我断开连接,并且不重新启动代理而再次连接到跳转主机,则一切都像以前一样工作。
我该如何诊断那里发生了什么?
补充信息:我的工作站是 Ubuntu 16.04,跳转主机是 14.04,最近从 12.04 升级而来。
答案1
当使用代理转发时,ssh
实际上将 UNIX 套接字转发到目录中/tmp
并将集合SSH_AUTH_SOCK
指向它。
实际上,这意味着只有新的远程 shell 才能继承SSH_AUTH_SOCK
。较旧的会话将继续指向不再存在的套接字。export
如果您不想打开新的 shell,您可以再次执行此操作