GNU/Linux
Secure Shell (SSH)
Ricerca…
introduzione
Una shell sicura viene utilizzata per accedere da remoto a un server da un client tramite una connessione crittografata. OpenSSH viene utilizzato come alternativa alle connessioni Telnet che ottengono l'accesso alla shell remota ma non sono criptate. OpenSSH Client è installato sulla maggior parte delle distribuzioni GNU / Linux per impostazione predefinita e viene utilizzato per connettersi a un server. Questi esempi mostrano come utilizzare la suite SSH per accettare le connessioni SSH e connettersi a un altro host.
Connessione a un server remoto
Per connettersi a un server, dobbiamo utilizzare SSH sul client come segue,
# ssh -p port user@server-address
- porta - La porta ssh di ascolto del server (porta predefinita 22).
- utente : deve essere un utente esistente sul server con privilegi SSH.
- indirizzo del server - IP / Dominio del server.
Per un esempio reale, facciamo finta di creare un sito web. La società che hai scelto per ospitare il tuo sito ti dice che il server si trova su web-servers.com su una porta personalizzata del 2020 e il tuo nome account usr1 è stato scelto per creare un utente sul server con privilegi SSH. In questo caso il comando SSH usato sarebbe come tale
# ssh -p 2020 [email protected]
Se il nome account sul sistema remoto è uguale a quello del client locale, è possibile che il nome utente non venga visualizzato. Quindi se tu sei usr1
su entrambi i sistemi, allora tu semplicemente usi web-servers.com
invece di [email protected]
.
Quando un server a cui si desidera connettersi non è direttamente accessibile, è possibile provare a utilizzare lo switch ProxyJump per connettersi ad esso tramite un altro server accessibile all'utente e in grado di connettersi al server desiderato.
# ssh -J [email protected]:2020 [email protected] -p 2222
Questo ti permetterà di collegarti al server 10.0.0.2 (eseguendo ssh sulla porta 2222) attraverso il server su 10.0.0.1 (eseguendo ssh sulla porta 2020). Avrai bisogno di avere account su entrambi i server, ovviamente. Si noti inoltre che l'opzione -J è stata introdotta in OpenSSH versione 7.3.
Installazione della suite OpenSSH
Entrambe le connessioni a un server SSH rimovibile e l'accettazione delle connessioni SSH richiedono l'installazione di openssh
Debian:
# apt-get install openssh
Arch Linux:
# pacman -S openssh
yum:
# yum install openssh
Genera chiave pubblica e privata
Per generare chiavi per il client SSH:
ssh-keygen [-t rsa | rsa1 | dsa ] [-C <comment>] [-b bits]
Per esempio:
ssh-keygen -t rsa -b 4096 - C [email protected]
La posizione predefinita è ~/.ssh/id_rsa
per private e ~/.ssh/id_rsa.pub
per la chiave pubblica.
Per maggiori informazioni, visita man.openbsd.org
Configurazione di un server SSH per accettare connessioni
Per prima cosa dobbiamo modificare il file di configurazione del daemon SSH. Anche se in diverse distribuzioni Linux questo può trovarsi in diverse directory, di solito è memorizzato in /etc/ssh/sshd_config
Usa il tuo editor di testo per modificare i valori impostati in questo file, tutte le righe che iniziano con # sono commentate e devono essere rimosse per fare effetto. Un elenco di raccomandazioni segue come tale.
Port (chose a number between 0 - 65535, normaly greater than four digits)
PasswordAuthentication yes
AllowUsers user1 user2 ...etc
Si noti che è preferibile disabilitare tutti gli accessi alle password e utilizzare le chiavi SSH per una maggiore sicurezza, come spiegato in questo documento.
Disabilita il servizio ssh
Questo disabiliterà il servizio lato server SSH, come se ciò fosse necessario per assicurare che i client non possano connettersi tramite ssh
Ubuntu
sudo service ssh stop
Debian
sudo /etc/init.d/ssh stop
Arch Linux
sudo killall sshd
Connessione senza password (utilizzando una coppia di chiavi)
Prima di tutto dovrai avere una coppia di chiavi. Se non ne hai ancora uno, dai un'occhiata all'argomento "Genera argomento chiave pubblico e privato".
La tua coppia di chiavi è composta da una chiave privata (id_rsa) e una chiave pubblica (id_rsa.pub). Tutto quello che devi fare è copiare la chiave pubblica sull'host remoto e aggiungerne il contenuto al file ~/.ssh/authorized_keys
.
Un modo semplice per farlo è:
ssh <user>@<ssh-server> 'cat >> ~/.ssh/authorized_keys' < id_rsa.pub
Una volta che la chiave pubblica è posizionata correttamente nella home directory dell'utente, è sufficiente effettuare il login utilizzando la rispettiva chiave privata:
ssh <user>@<ssh-server> -i id_rsa