Ho un host remoto dietro un bastione a cui devo impostare il port forwarding, ho pensato a quanto segue:
bastion=xyz.com
user=$( whoami )
function doSSH () {
ssh $user@$bastion -t -A \
-L 5900:127.0.0.1:5900 \
ssh $user@$1 -t -A \
-L 5900:127.0.0.1:5900 \
'/opt/enableVNC && while [ 1 ]; do echo "Keeping forwards alive..." && sleep 60; done'
}
Il problema che sto affrontando è che dopo SSHing sul nodo remoto, devo eseguire uno script che ha abilitato il server VNC sul nodo, sfortunatamente, questo script ritorna a breve 0
una volta che il server è attivo e in esecuzione. Lo script che sto chiamando non è uno script di blocco e la sessione ssh termina, anche se ho stabilito il port forward.
$ doSSH node1
user@xyz.com's password:
user@node1's password:
VNC is now Enabled
Listening on 127.0.0.1:5900
Connection to node1 closed.
Keeping forwards alive...
Keeping forwards alive...
Sembra che la connessione al secondo host venga interrotta immediatamente dopo il ritorno della prima parte del comando e non riesco a mantenere aperta la connessione al secondo host.
Come posso mantenere il mio port forward stabilito dopo aver effettuato una chiamata che ritorna immediatamente?
ProxyCommand
e inoltro IO con-W
? È molto meno disordinato e molto più sicuro, se consentito dal bastione.