Pornește automat ecranul GNU când intru într-unul pe propriile mele servere. Când am terminat, trebuie să mă detașez. Apoi ieșiți pentru a părăsi ssh. Acest lucru înseamnă că, când intru din nou pe server la un moment dat, pot continua de unde am rămas.
Pot crea un alias (de exemplu) care să detașeze (din interiorul ecranului) ssh?
Comentarii
Răspunde
Pornirea screen
la conectarea la gazda de la distanță (executată pe computerul local):
ssh -t user@host screen
În ecran sesiune, pe gazda de la distanță, pentru a se detașa și a se deconecta (ceea ce ar încheia sesiunea SSH, cu excepția cazului în care utilizați o conexiune persistentă utilizând o priză de control (adică folosind setarea ControlMaster
cu ControlPersist
în ~/.ssh/config
)):
screen -d
Mai târziu, pentru a vă conecta și atașați din nou:
ssh -t user@host screen -r
Rețineți că trebuie să utilizați -t
cu ssh
, forțând alocarea pseudo-terminală, să înceapă screen
în acest fel.
Aliasul de pe gazda la distanță ar fi f sau screen -d
, poate detach="screen -d"
sau ceva similar.
Pe gazda locală, puteți avea o secțiune în ~/.ssh/config
fișier care spune
Host *-screen RequestTTY force RemoteCommand screen -d -R Host myhost myhost-screen HostName myhost.somedomain.example.com User myname
Apoi, ori de câte ori utilizați
ssh myhost-screen
o screen
sesiune ar fi creată (sau re-atașată la) pe gazda specificată, în timp ce
ssh myhost
nu ar folosi screen
.
Notă: RemoteCommand
a fost adăugat în OpenSSH 7.6 (2017) -10-03).
Pentru tmux
:
- Utilizați
tmux new-session -A -s "%n"
în~/.ssh/config
în loc descreen -d -R
. - Utilizați prefix d sau
tmux detach-client
sautmux detach
pentru detașare.
Comentarii
- Frumos, thx. Acasă, acest lucru va funcționa excelent. Nu știam despre ' Forțează alocarea pseudo-tty '. Am testat acest lucru și funcționează.
Răspuns
Când executați comanda ecranului pentru a vă reaminti sau a crea ecranul , După adăugați un shell de părinte, deci vă va ucide conexiunea ssh.
un exemplu pentru uciderea procesului meu părinte dacă părintele este bash
kill $( ps -ax -o pid,ppid,args | grep "^$$ " | grep bash | awk "{print $2} " )
Comentarii
- Thx. Dacă intru de undeva unde nu pot specifica o aplicație de rulat (cum ar fi online ssh app.shellngn.com ) și modific linia de cod la căutați sesiuni ssh, acest lucru va funcționa.
screen