Como posso saber se tenho SSH em algum lugar já?

1

Existe uma maneira fácil de saber se estou usando o SSH em algum lugar sem digitar 'exit'?

Como se eu estivesse atualmente no computador A e eu SSH para o computador B e depois de B para o computador C, há uma maneira que eu seria capaz de dizer antes de fechar a sessão e usar 'hostname' para descobrir onde estou?

(Presumivelmente, esta solução também deixaria claro que eu não tenho SSH em nenhum lugar, se eu estiver apenas no localhost, mas se eu tiver SSH em outro lugar e de lá o SSH voltar para a minha máquina local, eu ' d ser capaz de dizer.)

    
por briealeida 14.11.2009 / 09:09

5 respostas

3

Confira $ SSH_CONNECTION. Ele informa a você qual IP e porta você está conectando de e para. Pelo menos, este é o caso do OpenSSH. YMMV com outros servidores.

    
por 14.11.2009 / 11:11
11

Se você sabe que está 'ssh'ed, mas não sabe de onde, tente

w

em uma linha de comando. A saída inclui um campo FROM que pode ser útil.

    
por 14.11.2009 / 09:29
3

Tente definir seu prompt para incluir o nome do host. caso contrário, gosto de usar screen em cada login com uma linha de status contendo o nome do host (um pouco complicado para setup , e ele fica recursivo com linhas de status dentro de telas com linhas de status). Você deve ser capaz de echo $HOSTNAME ou apenas executar hostname .

    
por 14.11.2009 / 09:58
1

Eu gosto da resposta "w",

e outra maneira é verificar o nome do host para descobrir qual é o nome do computador:

hostname
    
por 14.11.2009 / 09:41
0

Em seu cenário, conecte-se diretamente de A a C, se isso for possível. Isso evitará a criptografia dupla. E talvez aumente a latência.

Modifique também a variável do shell PS1 para cada conta para refletir o nome do host, se ainda não o fizer. Este truque também irá ajudá-lo em situações em que você usa o chroot.

    
por 14.11.2009 / 09:38