SSH para hospedar # 1 e, em seguida, ssh para hospedar # 2 do host # 1 e, em seguida, executar o comando e, em seguida, permanecer conectado

3

Estou tentando o SSH hospedar # 1, que tem acesso ao host # 2, e no host # 2 eu quero executar um comando. Tudo da minha máquina local.

Esse bit funciona bem:

    ssh host1 -t "command; ssh user@host2"

Mas, no host2, eu também quero gravar em um diretório e ficar conectado

Eu tentei usar isso:

    ssh host1 -t "command; ssh user@host2 -t 'command; cd /some/path/'"

A saída que recebo é:

    Connection to host2 closed.
    Connection to host1 closed.

E acaba na minha máquina local

O resultado esperado foi minha sessão estar no host2 no diretório / some / path / thru host1

    
por Marcus Brunsten 12.02.2015 / 11:13

2 respostas

5

Em vez de tmux ou screen , como sugerido por @heemayl, também é possível usar bash :

ssh host1 -t "command; ssh user@host2 -t 'command; cd /some/path/; bash'"
    
por setempler 12.02.2015 / 11:50
3

Instale screen ou tmux em "host2" e a execução do seguinte manterá a sessão ativa:

ssh host1 -t "command; ssh user@host2 -t 'command; cd /some/path/; screen'"

No caso de você comandar, ou seja, ssh host1 -t "command; ssh user@host2 -t 'command; cd /some/path/'" , a sessão será fechada após a execução dos comandos. Mas se você usar screen ou tmux , a sessão remota será mantida ativa.

Verifique as páginas de manual da tela e tmux para detalhes. tmux é a abordagem mais recente para resolver o mesmo problema screen resolve.

    
por heemayl 12.02.2015 / 11:40

Tags