Ricerca nel sito web

Come installare OpenSSH Server dal sorgente in Linux


OpenSSH è un'implementazione completa gratuita e open source del protocollo SSH 2.0, che fornisce una serie di strumenti per accedere e gestire in modo sicuro i sistemi informatici remoti e gestire le chiavi di autenticazione, come ssh (un sostituto sicuro per telnet), scp, sftp (sostituto sicuro per ftp), ssh-keygen, ssh-copy-id, ssh-add e altro.

Recentemente è stato rilasciato OpenSSH 9.3 e viene fornito con molte nuove funzionalità e correzioni di bug; è possibile leggere le note sulla versione SSH per ulteriori informazioni.

In questo articolo spiegheremo come installare e configurare l'ultima versione del server e client OpenSSH su un sistema Linux dai sorgenti. Supponiamo che tu abbia già un'installazione della suite OpenSSH.

Requisiti:

  • Un sistema Linux Debian/Ubuntu o RHEL/CentOS
  • Compilatore C
  • Zlib 1.1.4 o 1.2.1.2 o versione successiva
  • LibreSSL o OpenSSL >= 1.0.1 < 1.1.0

Installa il server OpenSSH dall'origine

Prima di installare la versione più recente di SSH, assicurati di controllare la versione corrente di SSH installata sul tuo sistema utilizzando il seguente comando.

ssh -V

OpenSSH_7.7p2 Ubuntu-4ubuntu2.5, OpenSSL 1.0.2g	1 Mar 2016

Dal risultato sopra, la versione di OpenSSH installata è 7.7, per installare l'ultima versione di OpenSSH, devi prima installare alcune dipendenze, ovvero strumenti di sviluppo o build Essentials e gli altri pacchetti richiesti, come segue.

-------------- On RedHat-based Distros --------------
sudo yum update
sudo yum group install 'Development Tools'
sudo yum install zlib-devel openssl-devel

-------------- On Debian-based Distros --------------
sudo apt update 
sudo apt install build-essential zlib1g-dev libssl-dev 

Per creare un ambiente adeguato per l'installazione del server OpenSSH, dobbiamo creare un nuovo utente e gruppo di sistema denominato "sshd", nonché un luogo sicuro in cui chroot.

sudo mkdir /var/lib/sshd
sudo chmod -R 700 /var/lib/sshd/
sudo chown -R root:sys /var/lib/sshd/
sudo useradd -r -U -d /var/lib/sshd/ -c "sshd privsep" -s /bin/false sshd

Spiegando i flag nel comando useradd sopra:

  • -r – dice a useradd di creare un utente di sistema
  • -U – indica di creare un gruppo con lo stesso nome e ID gruppo
  • -d – specifica la directory dell'utente
  • -c – utilizzato per aggiungere un commento
  • -s – specifica la shell dell'utente

Ora scarica il tarball della versione 9.3 di OpenSSH da uno qualsiasi dei mirror HTTP disponibili oppure puoi utilizzare il seguente comando wget per scaricarlo direttamente nel tuo terminale.

wget -c https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p1.tar.gz
tar -xzf openssh-9.3p1.tar.gz
cd openssh-9.3p1/

Ora creeremo e installeremo il server OpenSSH utilizzando --with-md5-passwords, --with-privsep-path e --sysconfdir, che installerà tutti i file in /usr/local/ (questo è il PREFISSO di installazione predefinito).

Puoi vedere tutte le opzioni disponibili eseguendo ./configure -h e personalizzando ulteriormente la tua installazione.

./configure -h

Ad esempio, per abilitare il supporto PAM e SELinux, aggiungi rispettivamente le opzioni --with-pam e --with-selinux, devi installare tutti i file header necessari perché funzionino.

## Install PAM and SELinux Headers ##
sudo apt install libpam0g-dev libselinux1-dev   [On Debian/Ubuntu]
sudo yum install pam-devel libselinux-devel     [On CentOS/RHEL]

## Compile and Install SSH from Sources ##
./configure --with-md5-passwords --with-pam --with-selinux --with-privsep-path=/var/lib/sshd/ --sysconfdir=/etc/ssh 
make
sudo make install 

Dopo aver installato OpenSSH, riavvia SSH o apri un'altra finestra di terminale e controlla la versione di OpenSSH ora installata sul tuo sistema.

ssh -V

OpenSSH_9.3p1, OpenSSL 3.0.1 14 Dec 2021

I vari file di configurazione di OpenSSH si trovano in:

  • ~/.ssh/*: questa directory memorizza le configurazioni e le chiavi del client ssh specifiche dell'utente (alias ssh).
  • /etc/ssh/ssh_config: questo file contiene le configurazioni del client ssh a livello di sistema.
  • /etc/ssh/sshd_config – contiene le configurazioni del servizio sshd.

Per configurare gli alias ssh, vedere: Come configurare connessioni SSH personalizzate per semplificare l'accesso remoto

Potrebbe interessarti anche leggere i seguenti articoli relativi a SSH.

Questo è tutto! In questo articolo, abbiamo spiegato come installare e configurare l'ultima versione del server OpenSSH da un sorgente su un sistema Linux. Se hai domande o commenti, utilizza il modulo di feedback qui sotto per contattarci.