如何列出远程计算机上的SSH连接顺序?
问题描述:
假设我在LocalA
(用户名userA
)上工作。我用ssh
隧道到RemoteB
(用户名userB
),然后到RemoteC
(用户名userC
),然后最后到RemoteDestinationD
(用户名userD
)。如何列出远程计算机上的SSH连接顺序?
它看起来像下面这样:
[email protected]$ ssh [email protected]
[email protected]$ ssh [email protected]
[email protected]$ ssh [email protected]
[email protected]$
想我忘记是哪个系列我用来连接从LocalA
到RemoteDestinationD
连接。它可能是一次跳跃(例如[email protected]$ ssh [email protected]
)或三次跳跃(如上例所示)。我怎样才能以编程方式确定我的系列跳转是什么? (“通过你的历史滚动,假!”不计....)
我想一个bash脚本,将输出类似以下内容:
[email protected]$ --> [email protected]
[email protected]$ --> [email protected]
[email protected]$ --> [email protected]
任何想法?
在此先感谢!
答
我怀疑没有好办法做到这一点。如果你愿意的话,你可以做一堆真正的黑客攻击,比如打开X11端口转发和使用不同的端口进行计数。
或者,更令人讨厌:
sshcount=0
ssh [email protected] "echo sshcount=$(($sshcount+1)) > .bashrc; bash"
从那里做类似到B的东西,所以sshcount不断递增。
显然这应该通过覆盖.sshcountrc
文件或其他东西,并从.bashrc
来源。然后,如果您想支持并行版本,则可能需要使文件名取决于$SSH_TTY
。
而整件事真的是黑客,所以也许你不应该反正你应该以另一种方式解决问题。或者首先取消计数的必要性。