Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何列出远程计算机上的SSH连接序列?_Bash_Ssh_Tunnel_Ssh Tunnel_Tunneling - Fatal编程技术网

Bash 如何列出远程计算机上的SSH连接序列?

Bash 如何列出远程计算机上的SSH连接序列?,bash,ssh,tunnel,ssh-tunnel,tunneling,Bash,Ssh,Tunnel,Ssh Tunnel,Tunneling,假设我正在处理LocalA(usernameuserA)。我使用ssh隧道到RemoteB(用户名userB),然后到RemoteC(用户名userC),最后到RemoteDestinationD(用户名userD) 它看起来类似于以下内容: userA@LocalA$ ssh userB@RemoteB userB@RemoteB$ ssh userC@RemoteC userC@RemoteC$ ssh userD@RemoteDestinationD userD@RemoteDestina

假设我正在处理
LocalA
(username
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$ 
userA@LocalA$ --> userB@RemoteB
userB@RemoteB$ --> userC@RemoteC
userC@RemoteC$ --> userD@RemoteDestinationD
假设我忘记了从
LocalA
连接到
RemoteDestinationD
的连接序列。可能是一次跳转(例如
userA@LocalA$sshuserD@RemoteDestinationD
)或三次跳跃(如上面的示例所示)。我如何通过编程确定我的一系列跳转是什么?(“滚动浏览您的历史记录,笨蛋!”不算数……)

我想要一个BASH脚本,它将输出如下内容:

userA@LocalA$ ssh userB@RemoteB
userB@RemoteB$ ssh userC@RemoteC
userC@RemoteC$ ssh userD@RemoteDestinationD
userD@RemoteDestinationD$ 
userA@LocalA$ --> userB@RemoteB
userB@RemoteB$ --> userC@RemoteC
userC@RemoteC$ --> userD@RemoteDestinationD
有什么想法吗


提前谢谢

我想没有什么好办法可以做到这一点。如果愿意的话,您可以进行一些真正的黑客操作,例如打开X11端口转发和使用不同的端口进行计数

或者,更令人讨厌的是:

sshcount=0
ssh userA@RemoteA "echo sshcount=$(($sshcount+1)) > .bashrc; bash"
从那里做一些类似于到达B的事情,所以sshcount不断增加

显然,这应该通过覆盖
.sshcountrc
文件或其他内容来完成,并从
.bashrc
中获取。然后,如果您想支持并行版本,可能需要使文件名依赖于
$SSH\u TTY

整个事情其实是一个黑客行为,所以也许你无论如何都不应该这样做,你应该用另一种方式解决这个问题。或者从一开始就不需要计数