假设我正在处理LocalA
(用户名userA
)。我使用ssh
隧道到RemoteB
(用户名userB
),然后到RemoteC
(用户名userC
),最后到RemoteDestinationD
(用户名) userD
)。
它看起来像下面这样:
userA@LocalA$ ssh userB@RemoteB
userB@RemoteB$ ssh userC@RemoteC
userC@RemoteC$ ssh userD@RemoteDestinationD
userD@RemoteDestinationD$
假设我忘记了我用来连接LocalA
到RemoteDestinationD
的哪一系列连接。它可能是一次跳跃(例如userA@LocalA$ ssh userD@RemoteDestinationD
)或三次跳跃(如上例所示)。我怎么能以编程方式确定我的跳跃系列是什么? (“滚动你的历史,虚拟!”不算......)
我想要一个输出如下内容的BASH脚本:
userA@LocalA$ --> userB@RemoteB
userB@RemoteB$ --> userC@RemoteC
userC@RemoteC$ --> userD@RemoteDestinationD
有什么想法吗?
提前致谢!
答案 0 :(得分:0)
我怀疑,没有好办法做到这一点。如果你愿意,你可以做很多真正的黑客攻击,例如打开X11端口转发和使用不同的端口进行计数。
或者,更令人讨厌的是:
sshcount=0
ssh userA@RemoteA "echo sshcount=$(($sshcount+1)) > .bashrc; bash"
从那里做类似的事情到达B,所以sshcount不断增加。
显然,这应该通过覆盖.sshcountrc
文件或其他内容来完成,并从.bashrc
中获取。然后,如果您想支持执行此类的并行版本,则可能需要使文件名依赖于$SSH_TTY
的某些变换。
整个事情真的是一个黑客,所以也许你不应该这样,你应该以另一种方式解决问题。或者首先不需要计数。