Imprimir cadeia ssh e su

2

Existe uma maneira de mostrar a cadeia ssh e su completa no bash?

Por exemplo. No servidor A como usuário aa:

su - ab
ssh ba@B
su - bb

Assim, eu gostaria de um comando que imprima algo como isto:

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

Eu tentei o pstree, mas ele não imprime os usuários e só funciona com os processos do último servidor ssh'ed:

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

Obrigado e cumprimentos.


fonte
Relacionada, talvez duplicar: Mostrando uma pilha de conexões SSH no Terminal
Bobby

Respostas:

0

Aqui está o que você pode encontrar facilmente (o servidor de onde você vem):

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

Eu não acho que há alguma maneira prontamente disponível para recuperar o seu pleno bash/ ssh/ suhistória. Aqui está o que eu sugeriria ir um pouco além do seu original pstree. Mas isso é muito superficial, no entanto.

Recuperando o sshd pid:

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

Isso permite que você para descobrir qual porta do servidor Aestá ligado ao sshdon B:

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

Então você pode procurar quem está usando esta porta em A:

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

Agora você pode usar o 19085pstree para descobrir o que foi feito A.

Julien Vivenot
fonte