Mostrando uma pilha de conexões ssh no terminal

0

Eu tive essa ideia por muito tempo e tentei várias maneiras de implementar, sem sorte. Tentei google muitas vezes e sempre encontrei não muito o que é necessário.
Como fazer:

$ ssh hostA

|--------------------------------|
|                                |
|                                |
|                                |
|                                |
|                                |
|                                |
|                                |
| root@hostA $ ssh hostB         |
|--------------------------------|

|--------------------------------|
|                                |
|                                |
|                                |
|                                |
|                                |
|                                |
| root@hostB $                   |
| root@hostA $                   |
|--------------------------------|

A solução mais próxima que eu encontrei foi com a barra de status da tela do gnu, exibindo ssh from hostA to hostB (o truque é usar $SSH_... variáveis). Seria bom ter uma pilha visual de todas as conexões (não apenas 2).

    
por Alex 12.06.2012 / 11:11

2 respostas

1

Em ~/.ssh/environment , você pode definir variáveis de ambiente pelas quais deseja passar para hosts remotos. Isso requer a configuração PermitUserEnvironment ativada em sshd_config .

Então, o que você poderia fazer é em .bashrc ou qualquer script que você preferir, definir uma variável de ambiente para passar:

echo "HOSTPATH=$HOSTPATH-$USER@$HOSTNAME" >> ~/.ssh/environment

Para o seu primeiro salto, HOSTPATH estará vazio, então ~/.ssh/environment conteria HOSTNAME=-user@host1 .

Conforme você faz login no segundo host, o HOSTNAME env var seria transmitido mostrando de onde você veio. À medida que o bashrc é executado novamente, a variável HOSTPATH seria gravada em .ssh / environment com o host atual anexado ao primeiro, pronto para o próximo salto:

HOSTNAME=-user@host1-user@host2    

Cada esperança resultaria em HOSTPATH sendo anexado ao host atual e pronto para passar pelo ambiente ssh para o próximo salto.

Você pode adaptar isso para seus próprios asméticos. Se você sair de um host e pular para outro, ele deve excluir automaticamente o host do qual você veio do caminho, pois ele reutilizará a configuração .ssh/environment atualmente definida. Pode até lidar com loops, vou deixar isso como um exercício para o leitor:)

    
por 14.06.2012 / 15:30
1

Você já tentou / olhou para tela ?

Não é exatamente o que você quer, mas você pode emitir a tela -la sempre que quiser obter a listagem desejada.

    
por 12.06.2012 / 19:42