Avvio automaticamente gnu screen quando eseguo ssh in uno sui miei server. Quando ho finito, devo staccarmi. Quindi esci per uscire da ssh. Ciò significa che quando ad un certo punto entro di nuovo nel server, posso continuare da dove avevo interrotto.

Posso creare un alias (ad esempio) che (dallinterno dello schermo) scollegherà e rilascerà ssh?

Commenti

  • Come si avvia automaticamente screen

Risposta

Avvio di screen quando si accede allhost remoto (eseguito sulla macchina locale):

ssh -t user@host screen 

Nella schermata sessione, sullhost remoto, per scollegarsi e disconnettersi (il che terminerebbe la sessione SSH a meno che non si utilizzi una connessione persistente utilizzando un socket di controllo (ovvero utilizzando limpostazione ControlMaster con ControlPersist in ~/.ssh/config)):

screen -d 

Successivamente, per accedere e ricollega:

ssh -t user@host screen -r 

Tieni presente che devi utilizzare -t con ssh, forzando lallocazione dello pseudo-terminale, per avviare screen in questo modo.

Lalias sullhost remoto sarebbe f oppure screen -d, forse detach="screen -d" o qualcosa di simile.

Nellhost locale, potresti avere una sezione nel tuo ~/.ssh/config file contenente

Host *-screen RequestTTY force RemoteCommand screen -d -R Host myhost myhost-screen HostName myhost.somedomain.example.com User myname 

Quindi, ogni volta che utilizzi

ssh myhost-screen 

una screen verrà creata (o ricollegata a) sullhost specificato, mentre

ssh myhost 

non utilizzerebbe screen.

Nota: RemoteCommand è stato aggiunto in OpenSSH 7.6 (2017 -10-03).


Per tmux:

  • Utilizza tmux new-session -A -s "%n" in ~/.ssh/config invece di screen -d -R.
  • Utilizza prefix d o tmux detach-client o tmux detach per scollegare.

Commenti

  • Gentile, grazie. A casa funzionerà benissimo. Non sapevo di ' Forza allocazione pseudo-tty '. Lho provato e funziona.

Rispondi

Quando esegui il comando sullo schermo per richiamare o creare lo schermo , Dopo aggiungi un kill della tua shell genitore, così ucciderai la tua connessione ssh.

un esempio per uccidere il mio processo genitore se il genitore è bash

kill $( ps -ax -o pid,ppid,args | grep "^$$ " | grep bash | awk "{print $2} " ) 

Commenti

  • Thx. Se eseguo ssh da un punto in cui non riesco a specificare unapp da eseguire (come online ssh app.shellngn.com ) e modifico la riga di codice cerca le sessioni ssh, funzionerà.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *