Mantenere attivo un processo dopo aver chiuso una sessione SSH

Spesso mi capita di lanciare script, batch o qualsiasi altro processo in una sessione remota SSH abbastanza lunga ma quando il mio Macbook va in standby o perdo la connessione la procedura si interrompe perdendo tutto il lavoro svolto fino a quel momento.

Come risolvo questo problema?

Ci sono diverse soluzioni quella che uso per la maggiore è tmux.

Accedo alla macchina remota in SSH

avvio tmux con il comado tmux

lancio dentro la sessione tmuz il mio processo o script.

Per abbandonare la sessione tmux digito i tasti Ctrl+b e poi d

A questo punto posso lasciare anche la sessione ssh sulla macchina remota e il processo continuerà senza interruzioni.

Se volessi ritornare al processo basta digitare tmux attach

ifconfig non trovato

Se da diverso tempo non installi una distribuzione recente di Linux tipo Debian o Ubuntu potresti trovarti spiazzato nel ricevere il messaggio :

Command 'ifconfig' not found

Il vecchio e “amatissimo” comando ifconfig non è stato trovato, ma non è il solo anche altri comandi usati per il troubleshooting di rete tipo route, arp, ecc.. sono stati deprecati in favore di iproute2.

Comando obsoletoSostituito da
arpip neigh
ifconfigip addr
ipmaddrip maddr
iptunnelip tunnel
routeip route
nameififrename
mii-toolethtool

Per i nostalgici è sempre possibile installare il pacchetto software net-tools per intenderci se sei su ubuntu:

sudo apt install net-tools

Accesso in SSH con l’utilizzo di chiavi

Nella gestione quotidiana di macchine virtuali e server di sicuro l’utilizzo di una coppia di chiavi privata e pubblica ci renderà l’accesso più immediato e ‘forse’ 🙂 più sicuro.

Di seguito vediamo come rendere l’accesso più immediato e pratico ma non sicuro.

Scenario: la macchina A deve connettersi alla macchina B, per comodità chiameremo la macchina A “client” e la macchina B “server”

Sulla macchina client (A) generiamo le chiavi con il comando:
ssh-keygen
confermiamo tutte le opzioni di default e lasciamo il campo passphrase vuoto, questo ci consentirà di non digitare la password ogni volta.
Al termine dello script troviamo all’interno della directory ~/.ssh i file :

  • id_rsa (chiave privata)
  • id_rsa.pub (chiave pubblica)

La chiave privata la utilizziamo nella macchina che richiede la connessione (client), mentre quella pubblica la salviamo sulla macchina a cui vogliamo connetterci il server.

Per copiare la chiave pubblica sulla macchina server possiamo procedere manualmente copiando il contenuto del file id_rsa.pub sul file ~/.ssh/authorized_keys presente sul server,
oppure con il comando
ssh-copy-id username@server
da questo momento possiamo connetterci al nostro server digitando sul client:
ssh username@server
senza inserire più la password.