SSH - Eseguire comandi da remoto

Vediamo come eseguire un comando via SSH da remoto senza però fare prima il classico login/accesso alla shell.
Una operazione del genere può essere particolarmente utile quando, ad esempio, vogliamo preparare degli script che eseguano automaticamente comandi remoti su uno o più server.

La sintassi da utilizzare è la seguente:


ssh nomeUtente@nomeHost 'comando'

Quindi se ad esempio abbiamo un utente "lorenzo" sul server con IP "10.20.30.41" e vogliamo eseguire il comando "free -m" (serve per vedere lo stato di utilizzo della memoria) eseguiamo:

ssh lorenzo@10.20.30.41 'free -m'

Il comando verrà eseguito sul server remoto, ne verrà visualizzato l'output sul vostro terminale e la connessione verso il server verrà immediatamente chiusa.

Se state pensando di utilizzare questa metodologia per creare degli script automatizzati probabilmente vorrete anche evitare di dover inserire la password ogni volta. Lo potete fare tramite l'utilizzo delle chiavi ssh come modalità di login

Se invece avete bisogno di eseguire un comando "interattivo" come ad esempio "vi" (o qualunque altro comando che ha bisogno di agganciarsi ad un terminale) dovete aggiungere l'opzione "-t"
Esempio


ssh -t lorenzo@10.20.30.41 'vi prova.txt'