打印 ssh 和 su 链

打印 ssh 和 su 链

有没有办法在 bash 中显示完整的 ssh 和 su 链?

例如。在服务器 A 中以用户 aa 身份:

su - ab
ssh ba@B
su - bb

因此,我想要一个打印如下内容的命令:

1 bash aa in A
2 su ab in A
3 ssh ba in B
4 su bb in B

我尝试了 pstree,但是它没有打印用户并且只适用于最后一个 ssh 服务器的进程:

$ pstree | grep -C 5 pstree
serversshd---sshd---sshd---bash---su---bash-+-grep
     |                                       `-pstree

感谢致敬。

答案1

以下是您可以轻松找到的内容(您来自的服务器):

$ who
ba     pts/0        2012-11-14 22:47 (<A hostname>)

我认为没有任何现成的方法可以检索您的完整bash/ ssh/su历史记录。以下是我建议的比原来的更进一步的方法pstree。但这非常粗略。

检索 sshd pid:

$ pstree -p | grep -B1 pstree
    |-sshd(8259)---sshd(23962)---bash(23965)-+-grep(24390)
    |                                        `-pstree(24389)

这使您可以找出服务器上的哪个端口已A连接:sshdB

$ lsof -i -P | grep 23962
sshd      23962        ba    3r  IPv4 36943568       TCP B:22->A:50174 (ESTABLISHED)

然后你可以查找谁在使用此端口A

$  lsof -i -P| grep 50174
ssh       19085        ab    3u  IPv4 0x81104c4d3b4ee24d      0t0  TCP A:50174->B:22 (ESTABLISHED)

现在您可以使用19085pstree 来查明已完成的操作A

相关内容