ssh via múltiplos hosts

31

Para chegar à minha máquina no meu escritório, no momento estou fazendo isso:

me@home:~$ ssh unix.university.com
me@unix:~$ ssh unix.department.univeristy.com
[email protected]:~$ ssh office-machine.department.university.com
me@office-machine:~$ echo "This is very annoying"

Existe uma maneira fácil de automatizar esse processo, talvez um único comando que eu possa usar no meu final?

    
por Lucas 21.11.2011 / 03:46

4 respostas

26

Você pode usar o cliente ssh para executar o ssh na máquina remota no login.

ssh -t unix.university.com \
    ssh -t unix.department.univeristy.com \
    ssh -t office-machine.department.university.com

(O motivo pelo qual incluo -t nas invocações é porque ssh estava me dando erros re: stdin não sendo um terminal quando eu tentei em minha própria máquina; sua máquina pode ser diferente.)

Quando você sair do último shell, o processo será encerrado, evitando que você digite Ctrl-D várias vezes.

    
por 21.11.2011 / 03:50
31

Sim, há uma ótima maneira de fazer isso usando o sxy ProxyCommand e o netcat

Coloque algo assim em seu .ssh / config

Host *.department.university.com
User me
ForwardAgent yes
ProxyCommand ssh unix.university.com nc %h %p

Isso fará o login diretamente em qualquer servidor .department.university.com usando o host de salto / bastião unix.university.com. Você também pode precisar de uma estrofe para unix.university.com diretamente.

Aqui está um link explicando como funciona: link

Com essa técnica, você pode escrever agora

ssh unix.department.university.com

e tudo parecerá direto. Ferramentas como rsync, scp, etc (qualquer coisa na pilha ssh) também funcionarão de maneira transparente.

    
por 21.11.2011 / 14:48
4

No OpenSSH 7.3, ssh adicionou o sinalizador de linha de comando -J e a opção de configuração ProxyJump correspondente para resolver exatamente esse problema.

Dê aos hosts que você deseja ssh como uma lista separada por vírgula para -J . Por exemplo:

ssh -J unix.university.com,unix.department.university.com  \
  office-machine.department.university.com
    
por 13.10.2017 / 22:33
-4

tunelamento SSH. Eu não me lembro exatamente como fazer isso, no entanto, eu sei que há uma maneira de ter uma máquina basicamente permitir um túnel, talvez conectando a uma porta separada. Dessa forma, você simplesmente vai para a mesma máquina inicial (com uma porta diferente, por exemplo) e vai colocá-lo no seu local final.

Teria que pesquisar como configurá-lo.

:)

    
por 25.11.2011 / 00:27