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'"
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
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'"
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.
Tags ssh