#howto - Usare ssh

Scritto da il
ssh
bash

In questa guida verrá spiegata la procedura per connettersi su ssh e scambiare dati con un server remoto!

Connessione e scambio dati

Per connetterci ad un dispositivo tramite ssh assicuriamoci essenzialmente di soddisfare questi requisiti:

  • SSHD aperto nel device alla quale dovremo connetterci
  • Conoscere l’indirizzo ip (locale o meno)
  • Conoscere gli utenti abilitati a ssh
  • Conoscere la password

Avendo queste informazioni la connessione avviene in maniera molto semplice direttamente dalla nostra Distribuzione:

SSHD ? Cosa é?

sshd è il nome del demone di sistema che fa da server ad ssh, installatelo con il vostro package manager, successivamente attivatelo.

Installazione su Debian/Ubuntu e derivate

apt install openssh-server

Installazione su Fedora

dnf install -y openssh-server

Installazione su Archlinux

pacman -S openssh

Avvio su sistemi systemd based

Nei sistemi systemd based è molto semplice interfacciarsi con ssh, per avviarlo in una sessione specifica digitare i seguenti comandi:

systemctl start sshd 

Per avviarlo all’apertura del sistema operativo:

systemctl enable sshd 

Avvio su systemi sprovvisti di systemd

In tal caso è necessario avviare manualmente il programma sshd:

sshd

Se dovesse dare problemi del tipo:

Missing privilege separation directory: /run/sshd

Creare manualmente la cartella:

mkdir -p /run/sshd
chmod +755 /run/ssh

SSH, ma su un altra porta

La porta di default per ssh è la 22. Ma potete anche avviare sshd su un altra porta, per farlo cercate nel file /etc/ssh/sshd_config la riga #Port 22. Modificate la riga (eliminando il carattere #) e quindi scrivete la porta desiderata. Ad esempio per la porta 2044 scriverete:

Port 2044

Quindi avviate sshd sul dispositivo server.

Sul dispositivo in connessione invece dovremmo specificare la porta con il parametro -p:

ssh -p 2044 [email protected]

Copiare i dati con scp

Per copiare i dati con scp basterá scrivere:

scp tuofile [email protected]:/posizione/cartella

Spazi nel percorso!

Se il percorso di destinazione comprende degli spazi, bisogna fare qualche “trick” per aggirare il problema. Riflettiamoci: quando abbiamo degli spazi nei nomi di cartelle su bash abbiamo due modi per indicare il percorso:

  • usare le virgolette " ", tipo: /percorso/"della mia cartella"
  • usare il carattere escape \, tipo: percorso/della\ mia\ cartella

Qui li dobbiamo unire: servirà questo a specificare che localmente il comando è “unico”, quando arriva in remoto sarà nuovamente interpretato.

Quindi:

scp tuofile [email protected]:/posizione/"della\ mia\ cartella"

SCP, ma su un altra porta

Similmente bisogna usare un parametro, questa volta però la P è maiuscola!

scp -P 2044 tuofile [email protected]:/posizione/cartella

Inviare comandi in ssh

Potete anche inviare dei singoli comandi in ssh, ed osservare quindi in uscita il risultato di tale comando. Ecco come:

ssh [email protected] comando

Avviare un software con GUI da remoto

Possiamo anche avviare sulla macchina di destinazione un software con interfaccia grafica. Se è vero che normalmente ssh si usa con server (quindi dispositivi sprovvisti di schermo) è anche vero che con la diffusione dei raspberry è molto comune avere a che fare con media center ad esempio.

Quindi vediamo come avviare sulla macchina target un software che necessita di UI:

ssh [email protected]
export DISPLAY=:0
comando

Mi son dimenticato da dove son connesso …

Potete stampare il client da cui siete connessi così:

echo $SSH_CLIENT 

Scoprirete indirizzo ip, porta e modalità di connessione.

history_edu Revisioni