SSH Duas vezes no bash alias / function [duplicate]

3

No trabalho, nós executamos um servidor de portal para acessar todos os nossos servidores "reais". Essencialmente, qualquer um que precise de SSH em um dos servidores "reais" (web) entrará primeiro no SSH no portal, então é assim:

mike@localhost#    ssh mike@portal
#ssh login notice stuff blah blah
mike@portal#    ssh mike@webserver

Estou tentando escrever um alias ou função bash para combinar essas duas etapas em uma. Eu não sou o sysadmin por qualquer trecho, então manter isso o mais simples possível sem instalar software extra seria bom.

Eu tentei o seguinte, mas ele não vai passar como eu esperava:

ssh mike@portal; ssh mike@webserver #terminates on terminal for portal
ssh mike@portal 'ssh mike@webserver' #hangs
ssh mike@portal ssh mike@webserver #connects, but gives error "pseudo-terminal will not be allocated because stdin is not a terminal"

Alguma idéia ou solução alternativa para isso?

    
por mikedugan 04.09.2013 / 03:40

5 respostas

2

ssh mike @ portal exec ssh mike @ webserver

Supondo que você esteja se conectando com chaves, serão necessários mais sinalizadores se você usar senhas interativas.

    
por 04.09.2013 / 05:12
2

Coloque o seguinte no seu ~/.ssh/config :

Host webserver
    ProxyCommand ssh -A -e none portal nc %h 22

Em seguida, apenas ssh webserver funcionará. Requer que o netcat seja instalado em portal .

    
por 04.09.2013 / 16:45
1

Esta é uma necessidade bastante comum.

Uma maneira ( link ) é usar um túnel:

ssh -f -L 51526:server.example.com:22 -1 gateway.example.com sleep 3600

então

ssh -p 51526 localhost
    
por 04.09.2013 / 05:10
0

Uma variação na resposta da iii acabou sendo a solução depois de alguns ajustes ...

ssh -t -t mike@portal exec "ssh mike@webserver"

e para SFTP:

ssh -t -t mike@portal exec "sftp mike@webserver"
    
por 04.09.2013 / 13:06
0

Você está falando sobre vários servidores, parece-me. Então, a melhor maneira de fazer isso é colocar o seguinte em $HOME/.ssh/config

Host portal
    Hostname portal
    User mike
    StrickHostKeyChecking yes
    LocalForward 1024 webserver1:22
    LocalForward 1025 webserver2:22
    LocalForward 1026 webserver3:22
    ...

Host webserver1
    Hostname localhost
    Port 1024
    User mike

Host webserver2
    Hostname localhost
    Port 1025
    User mike

...

Em seguida, basta instanciar sua conexão com

ssh portal

e, em seguida, você pode se conectar a qualquer um dos servidores da Web usando

ssh webserver<n>
    
por 04.09.2013 / 18:32

Tags