GNU/Linux >> Linux Esercitazione >  >> Linux

Installazione e configurazione di OpenSSH su Ubuntu e distribuzioni basate su Debian

Se vuoi abilitare SSH sul desktop Ubuntu , utilizzare il seguente comando:

sudo apt install openssh-client

Se vuoi abilitare SSH sul server Ubuntu , utilizzare il seguente comando:

sudo apt install openssh-server

Leggi il resto dell'articolo per informazioni più dettagliate.

Ogni amministratore di sistema e sviluppatore ha sperimentato la necessità di accessi remoti ai sistemi per scopi di amministrazione e debug più rapidi.

In un ambiente IT, quasi tutte le attività dell'amministratore di sistema oggigiorno vengono eseguite tramite accessi remoti.

E non solo gli amministratori di sistema, anche gli utenti normali a volte hanno bisogno di accedere in remoto ai server.

Quindi, come ci si connette in remoto a un sistema Linux? Sono disponibili diversi strumenti per gli accessi remoti, ma quando si tratta di Linux, SSH è la scelta più popolare.

SSH, abbreviazione di Secure Shell, è un protocollo che consente l'accesso remoto in modo sicuro da un computer all'altro.

Ora la domanda è come abiliti SSH su Ubuntu o Debian o qualsiasi altra distribuzione Linux che stai utilizzando?

Ricorda che SSH è solo un protocollo e questo protocollo può essere implementato tramite una serie di strumenti come lsh, Dropbear ecc., ma lo strumento più utilizzato per SSH è il software open source OpenSSH.

In questo tutorial, vedrai come installare OpenSSH e configurarlo per abilitare SSH su distribuzioni Linux basate su Ubuntu e Debian. I passaggi menzionati sono applicabili sia alle versioni desktop che server di Ubuntu/Debian.

Consiglio anche di leggere questo articolo per familiarizzare con le basi di SSH.

Abilita SSH su Ubuntu e Debian con OpenSSH

Come accennato in precedenza, OpenSSH è il software per effettuare accessi SSH. È in ascolto su una porta, autentica gli utenti in entrata e crea una nuova shell per l'utente remoto.

Affinché SSH funzioni, è necessario che un server ssh sia in esecuzione sul sistema remoto a cui l'utente deve accedere. È inoltre necessario disporre di un client ssh nel sistema locale da cui l'utente accederà al sistema remoto.

OpenSSH fornisce entrambe queste funzionalità. C'è openssh-client per gli utenti finali e openssh-server per i server remoti.

Prima di installare OpenSSH, dovresti controllare se SSH è già installato e in esecuzione sul tuo sistema.

Verifica se SSH è già abilitato e in esecuzione

È più probabile che SSH sia già abilitato sul tuo sistema. Per verificare, eseguire il comando seguente sul server remoto o sul sistema dell'utente finale:

ps -aux | grep ssh

Se SSH è abilitato, dovresti vedere le informazioni sull'agente SSH sul desktop:

ps -aux | grep ssh

abhishek  1736  0.0  0.0  11304    36 ?        Ss   08:18   0:00 /usr/bin/ssh-agent /usr/bin/im-launch env GNOME_SHELL_SESSION_MODE=ubuntu gnome-session --session=ubuntu

abhishek 10462  0.0  0.0  21536  1044 pts/0    S+   10:15   0:00 grep --color=auto ssh

Sul server, dovresti vedere le informazioni su un demone SSH in esecuzione:

ps -aux | grep ssh

root       920  0.0  0.2  72296  6028 ?        Ss    2018   0:17 /usr/sbin/sshd -D

root     22708  0.0  0.3 108172  7364 ?        Ss   05:13   0:00 sshd: [email protected]/0

root     22873  0.0  0.0  14856  1068 pts/0    S+   05:14   0:00 grep --color=auto ssh

Se non vedi un output simile a quelli menzionati sopra, non hai SSH in esecuzione sul tuo sistema. È ora di installare OpenSSH.

Installazione di OpenSSH su Ubuntu e Debian

Una breve nota su openssh-client e openssh-server prima di procedere con l'installazione di OpenSSH.

openssh-client: Questo è il pacchetto che ti serve se vuoi connetterti a un sistema Linux remoto usando SSH. Questo è ciò di cui hai bisogno come utente finale/utente desktop.

openssh-server: Questo è il pacchetto di cui hai bisogno se desideri consentire accessi remoti tramite SSH al tuo sistema. Questo è ciò di cui hai bisogno sul tuo server Linux.

Nota che l'installazione di openssh-server ti consente anche di accedere in remoto ad altri sistemi tramite SSH. In altre parole, openssh-server è costituito da openssh-client. Ma se sei solo un utente finale con un desktop Linux, non è (principalmente) necessario installare openssh-server e consentire l'accesso remoto al tuo sistema.

Ora che conosci la differenza tra i due, è il momento di vedere come installarli.

Nota che per installare OpenSSH su Ubuntu o Debian, devi disporre dei diritti sudo/root. Se non si dispone di tale autorizzazione, contattare l'amministratore di sistema. Puoi anche leggere questo articolo sulla creazione di utenti sudo.

Installazione di OpenSSH per utenti desktop o finali

Se vuoi solo connetterti ad altri sistemi remoti tramite SSH, dovresti installare il pacchetto openssh-client usando il seguente comando:

sudo apt update
sudo apt install openssh-client

Dopo aver installato ssh sul tuo sistema, sei pronto per usarlo. Fare riferimento a questo articolo dettagliato per sapere come utilizzare SSH.

Installazione di OpenSSH per server

Se stai configurando un server Ubuntu/Debian, dovresti installare il pacchetto openssh-server in modo che altri utenti remoti possano connettersi al tuo sistema.

sudo apt update
sudo apt install openssh-server

Dopo aver installato openssh-server, è tempo di imparare come modificarlo e configurarlo secondo le tue necessità.

Controllo del demone SSH sshd (per i server)

Avrai il demone SSH chiamato sshd installato e abilitato per essere avviato automaticamente al riavvio per impostazione predefinita. systemctl è uno dei tanti modi per controllare il demone SSH. Per saperne di più su systemctl , fai riferimento a questo articolo.

Avvia il servizio sshd

Il servizio può essere avviato semplicemente emettendo:

sudo systemctl start sshd

Interrompi il servizio sshd

Il servizio può essere interrotto in modo simile:

sudo systemctl stop sshd

Riavvia il servizio sshd

Se vuoi che il servizio sshd venga arrestato e avviato (di solito necessario in caso di modifica delle configurazioni al servizio sshd), puoi semplicemente usare questo comando:

sudo systemctl restart sshd

Abilita SSH su Ubuntu automaticamente ad ogni avvio

Alcuni servizi devono essere avviati al riavvio stesso per evitare l'interazione manuale e se vengono utilizzati molto frequentemente. È molto essenziale per servizi come Apache, mongod, mysqld, sshd nei server.

Se vuoi abilitare tale avvio automatico per sshd, usa:

sudo systemctl enable sshd

Disabilita l'avvio automatico SSH al riavvio

Se non vuoi che sshd venga avviato automaticamente al riavvio, usa

sudo systemctl disable sshd

I suddetti quattro suggerimenti sono necessari ogni volta che si apporta una modifica al servizio ssh come la modifica della porta. Puoi utilizzare i comandi precedenti per gestire qualsiasi servizio (come mysqld, mongod, apache) con il nome del servizio sshd sostituito con il servizio di destinazione.

Suggerimento :puoi usare il comando nohup per continuare a eseguire i comandi anche se la tua connessione SSH si disconnette.

Configurazione di SSH (per server)

A partire da ora, il nostro servizio ssh sarà in ascolto sulla porta 22 e pronto per autenticare qualsiasi utente (anche root) una volta memorizzata una chiave.

Se desideri modificare una qualsiasi delle configurazioni come la porta per l'ascolto delle connessioni, puoi modificare il file “/etc/ssh/sshd_config ” aggiungendo, eliminando, commentando o decommentando le righe e quindi riavviando il servizio sshd.

Ci sono molte opzioni da configurare. Ho creato un elenco di configurazioni che molto probabilmente saranno necessarie.

1. Modifica la porta SSH predefinita

Di solito, il servizio sshd è in ascolto sulla porta TCP 22. Se vuoi, puoi cambiare la porta SSH in 5678 aggiungendo/modificando la seguente riga in /etc/ssh/ssh_config.

Port 5678

Riavvia il servizio per vedere immediatamente la modifica.

2. Disabilita l'accesso come root tramite SSH

Consentire agli utenti root di autenticarsi tramite ssh non è una buona idea per motivi di sicurezza. sudo gli utenti possono essere registrati in remoto ma non come root come root è in cima alla catena alimentare di sicurezza.

Root Login può essere disabilitato aggiungendo (se non già presente) la seguente riga e riavviando il servizio.

PermitRootLogin no

Se la riga è già presente, assicurati che non sia commentata.

3. Consenti l'autenticazione basata su chiave SSH su

Potresti voler consentire l'autenticazione basata su chiave ssh in modo che l'utente finale non debba inserire la password tutto il tempo. Basta usare ssh [email protected] sarà sufficiente per accedere al sistema remoto.

Per questo, dovresti configurare SSH per consentire l'autenticazione con chiave pubblica:

PubkeyAuthentication yes 

Se la riga è già presente, assicurati che non sia commentata.

Ora, se vuoi consentire a un particolare sistema di accedere tramite chiave pubblica, devi aggiungere quella chiave pubblica dell'utente finale nel file .ssh/authorized_keys .

Puoi creare chiavi ssh (chiave pubblica e chiave privata) con l'aiuto di ssh-keygen . Per saperne di più su key-gen, fai riferimento a questa fantastica risorsa.

Puoi trasferire la chiave pubblica dell'utente finale al server remoto con qualsiasi mezzo tu preferisca. Puoi usare il comando scp se lo desideri o semplicemente ottenerlo tramite FTP. Dipende davvero da te.

Sopra i tre sono più necessari, ma se vuoi cambiare ulteriormente, fai riferimento alla manpage di sshd_config .

Conclusione

Penso che sia un materiale di lettura abbastanza buono per sapere come abilitare SSH su Ubuntu/Debian e come configurare SSH sul tuo server per gli accessi remoti.

In un articolo correlato, puoi fare riferimento a questo articolo che descrive in dettaglio un errore SSH che si verifica a causa della copia della chiave pubblica tra i sistemi.

Se hai trovato utile questo articolo, condividilo con i tuoi amici. Se hai suggerimenti o commenti o se pensi che mi sia sfuggito qualcosa, sentiti libero di lasciare un commento qui sotto.


Linux
  1. Installazione e configurazione di php 7x su Centos 8

  2. Installazione e configurazione di Php e Nginx su Ubuntu 20.04

  3. Linux:configurazione, compilazione e installazione di un kernel Linux personalizzato?

  4. Installazione e configurazione di vsFTPD

  5. Imposta SFTP e Previeni SSH su Ubuntu 20.04

Come elencare i pacchetti installati su Ubuntu e distribuzioni Linux basate su Debian

Guida completa alla configurazione di SSH in Ubuntu

Installazione e configurazione di OpenVPN (Windows)

Installazione e configurazione di OpenVPN (Ubuntu)

Installazione e configurazione di OpenVPN (CentOS6)

Cambia la tua porta SSH in Ubuntu e Debian