Uso avanzato di SSH

ssh

Oggi articolo tranquillo. Una delle cose piu' utili del mondo informatico è il comando SSH. Protocollo sicuro per aprire una Shell in modo remoto su di un computer connesso ad internet.
Comodo, facile e sicuro.

Come ripasso ci leggiamo la guida scritta da Daniele in cui ci viene spiegato in dettaglio cosa è il protocollo SSH, come installarlo e come configurarlo.

In ogni caso per aprire una shell su di una macchina abbiamo bisogno di conoscere tre cose:

  1. Un nome utente valido.
  2. La password per quell'utente.
  3. L'indirizzo IP o l'indirizzo URL della macchina a cui vogliamo collegarci.

Quindi con:

ssh<username>@<IP Addr>

riusciamo ad aprire una shell sulla macchina che ha quell'indirizzo con il nome utente designato.
L'apertura di questa fantomatica shell ci permette di lavorare a 360 gradi sulla macchina destinazione (a patto che i privilegi dell'utente con cui l'abbiamo aperta ce lo permettano), come se fossimo esattamente di fronte a quest'ultima e non a distanza. Questa cosa ci permette di inserire dei comandi e ricevere l'output di questi, ma non di fare altro.

 

 

SPOSTARE FILE VIA SSH
SSH è un protocollo molto flessibile e permette anche la funzione di trasferimento file.
Si, lo so, la contestazione che sorge immediatamente è:

" ... ma esistono metodi molto più comodi per lo scambio di file, tipo FTP! "

Certamente caro mio Billy, ma alcune volte non vi è la possibilità di utilizzare strumenti comodi come FTP. Poiché può accadere che:

  1. Mancanza di privilegi dell'utente.
  2. Impossibilità di installare altri programmi, anche per le ragioni del punto 1.
  3. Problemi di sicurezza: classico esempio è FTP che non va molto d'accordo con alcuni tipi di firewal

Per queste e altre ragioni, spesso SSH risulta essere uno dei pochi strumenti disponibili per il trasferimento file. In più, tutti i metodi che vediamo in questo articolo non necessitano di installazione di alcun programma sulla macchina remota -- Il che è un enorme vantaggio.

Per effettuare il trasferimento di file via SSH abbiamo bisogno dell'implementazione di SSH chiamata Secure Copy, richiamabile con il comando scp. La sintassi risulta essere:

scp <file> <username>@<IP Addr>:</path/to/paste>

In questo modo possiamo copiare il file denominato <file> dalla nostro computer alla macchina avente indirizzo IP <IP Addr>, con user <username>, all'interno della cartella </path/to/paste>.

I principali parametri sono:

  • -l <limit>: per impostare il consumo di banda su <limit>.
  • -r : per spostare riscorsivamente delle directory.
  • -o <ssh-option>: per utilizzare delle opzioni proprie del comando ssh.
  • -v : verbose, ossia stampa tutto l'output del caso.

 

 

MONTARE PARTIZIONI VIA SSH
Il vantaggio del metodo precedente è che non abbiamo bisogno di installare un nuovo programma per poterlo utilizzare, e funziona praticamente come il comando cp.

Per effettuare questa operazione avremo bisogno del programma sshfs. Lo installiamo con il comando:

sudo apt-get install sshfs

se siamo su distribuzioni Debian-based, o se siamo su distribuzioni come Fedora diamo:

sudo dnf install sshfs

Analogamente al comando mount, sshfs ci permette di montare una partizione via SSH. La sintassi pertanto è praticamente identica, anche se dobbiamo premunirci di creare il punto di mount in cui desideriamo montare la partizione. Tipicamente nei sistemi Linux è buona norma montare le partizioni dell'utente sotto la cartella mnt. Un tipico esempio può essere:

sudo mkdir /mnt/remote_part/

Ora non ci resta che montare la nostra partizione remota con il comando:

sshfs <user>@<IP Addr>:</path/to/mount> </mounting/path>

Dove, come prima <user> sta per l'utente remoto, <IP Addr> è l'IP della macchina a cui ci vogliamo connettere. </path/to/mount> rappresenta invece la directory remota che vogliamo montare e infine </mounting/path> rappresenta il path del nostro computer in cui vogliamo montare la partizione, nel nostro esempio /mnt/remote_part/
 

 

MONTARE PERMANENTEMENTE UNA PARTIZIONE REMOTA
Se le necessità di utilizzo sono importanti e non vogliamo stare ogni volta a montare e smontare la partizione remota, possiamo farla montare automaticamente dal sistema operativo al suo avvio.
Per fare questo ci servirà un path in cui montare la partizione (nel nostro esempio sempre /mnt/remote_part) e l'accesso al file fstab.

Apriamo quindi il file /etc/fstab con:

sudo nano /etc/fstab

e inseriamo al fondo la seguente stringa:

<user>@<IP Addr>:</path/to/mount> </mounting/path> fuse.sshfs reconnect,idmap=user,allow_other,_netdev 0 0

Attenzione: non ci sono spazi all'interno della stringa, ma TAB.
Le cose da prestare attenzione sono le stringhe tra parentesi angolari da sostituire come prima.
 

 

SMONTARE UNA PARTIZIONE REMOTA
Per smontare una partizione remota semplicemente si usa il comando umount:

sudo umount </partition/path>

che nel nostro esempio sarebbe:

sudo umount /mnt/remote_part

Fate i buoni e non montate partizioni ricorsivamente, mi raccomando. A presto 🙂

 

Dottore in Informatica. Appassionato di computer fin dal primo PC Olivetti con Windows 95 e la bellezza di 8 MB di RAM.
Utilizzatore Linux da 5 anni, credo profondamente nella filosofia open source.
Dopo tante distro provate sul mio fidato Toshiba, uso Fedora per lo studio e il divertimento.

Lascia un commento