Para chegar à minha máquina no meu escritório, no momento estou fazendo o seguinte:
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?
ssh
multiple-machines
Lucas
fonte
fonte
Respostas:
Você pode usar o cliente ssh para executar o ssh na máquina remota após o login.
(A razão pela qual incluí
-t
nas invocações é porque o ssh estava me dando erros: stdin não era um terminal quando eu tentei em minha própria máquina; sua máquina pode ser diferente.)Quando você sai do último shell, o processo sai em cadeia, economizando a digitação Ctrl-Drepetidamente.
fonte
tar cf - something | ssh somewhere "cd /path/remote ; tar xf - "
:: pode ficar corrompido se você adicionar-t
! Veja por exemplo a maravilhosa resposta de StephaneChazelas unix.stackexchange.com/questions/151916/ ... )-J
opção. Eu acho que você poderia fazê-lo com váriasProxyCommand
opções na sua configuração.-J
você pode especificar uma lista de saltos separados por vírgula para percorrer. Mas usarProxyCommand
com-W
ainda é uma abordagem muito melhor do que esta resposta se você estiver usando uma versão muito antiga para suportar-J
.Sim, existe uma ótima maneira de fazer isso usando ssh ProxyCommand e netcat
Coloque algo assim em seu arquivo .ssh / config
Isso fará o logon 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: http://backdrift.org/transparent-proxy-with-ssh
Com esta técnica, agora você pode apenas escrever
e tudo parecerá direto. Ferramentas como rsync, scp, etc (qualquer coisa na pilha ssh) também funcionarão de forma transparente.
fonte
-W
opção, você pode fazer algo como, emProxyCommand ssh -W %h:%p gateway
vez de depender de ncProxyCommand ssh -W %h:%p user@gateway
No OpenSSH 7.3, o ssh adicionou o
-J
sinalizador da linha de comando e aProxyJump
opção de configuração correspondente para resolver exatamente esse problema.Forneça aos hosts que você deseja enviar como uma lista separada por vírgulas
-J
. Por exemplo:fonte
Tunelamento SSH. Não me lembro exatamente como fazer isso, mas sei que há uma maneira de uma máquina permitir um túnel, talvez conectando-se a uma porta separada. Dessa forma, você apenas concede à mesma máquina inicial (com uma porta diferente, por exemplo) e ela o posiciona na sua localização final.
Teria que procurar como configurá-lo embora.
:)
fonte