我如何知道我是否已经在某处通过 SSH 连接?

我如何知道我是否已经在某处通过 SSH 连接?

有没有一种简单的方法可以判断我是否通过 SSH 进入某个地方而无需输入“exit”?

比如,如果我当前坐在计算机 A 旁,然后通过 SSH 连接到计算机 B,再从 B 连接到计算机 C,有没有办法可以让我无需关闭会话并使用“主机名”就能发现我所在的位置?

(据推测,如果我只是在本地主机,这个解决方案也会清楚地表明我没有在任何地方使用 SSH,但如果我在其他地方使用 SSH,然后从那里使用 SSH 返回到我的本地机器,我就能分辨出来。)

答案1

查看 $SSH_CONNECTION。它会告诉您当前连接的 IP 和端口。至少,OpenSSH 是这种情况。其他服务器可能有所不同。

答案2

如果你知道你被 ssh 了,但不知道从哪里,请尝试

w

在命令行上。输出包含可能有用的 FROM 字段。

答案3

尝试设置提示符以包含主机名;否则我喜欢screen在每次登录时使用包含主机名的状态行(有点复杂设置,并且它会在带有状态行的屏幕内使用状态行进行递归)。您应该能够echo $HOSTNAME或只需执行hostname

答案4

在您的场景中,如果可能的话,直接从 A 连接到 C。这将避免双重加密。并且可能会增加延迟。

同时修改shell变量PS1为每个帐户反映主机名(如果尚未这样做)。此技巧在您使用 chroot 时也会有所帮助。

相关内容