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.
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?
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.
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
.
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
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"
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>