SSH sta per Secure Shell. Come suggerisce il nome, SSH ha lo scopo di accedere a Server o Desktop Shell in Windows, macOS, Linux (CentOS, Ubuntu e tutti gli altri) e altri sistemi operativi disponibili in remoto. È fondamentalmente un protocollo di rete, il che significa impostare regole per stabilire una connessione sicura e crittografata tra client e server.
Il vantaggio principale dell'utilizzo di SSH è una trasmissione sicura dei dati su reti non sicure come Internet. È davvero utile connettere computer remoti e accedervi in modo sicuro tramite la riga di comando. Possiamo anche usarlo per trasferire file su reti scettiche. Questo è il motivo per cui la maggior parte dei Data Center e degli Amministratori Cloud lo utilizza per accedere ai server da remoto.
Qui mostreremo i passaggi per installare il server OpenSSH su CentOS 8 Linux. Questo pacchetto software utilizza SSH (Secure Shell protocol) per fornire un canale sicuro sulla rete in un'architettura client-server.
Abilita SSH su CentOS 8 Linux
I passaggi indicati di seguito per l'installazione del server OpenSSH funzioneranno non solo su CetnOS 8 ma anche su versioni precedenti come 7 e 6.
1. Installa il server OpenSSH
Apri il terminale di comando su CentOS 8, se stai utilizzando la versione CLI, sei già lì. L'installazione di OpenSSH è molto semplice in quanto è già presente nel repository ufficiale di CentOS. Quindi, un comando e sarà sulla tua macchina.
sudo dnf –y install openssh-server
Il singolo comando installerà sia il client OpenSSH che il daemonsshd del server sul sistema.
2. Avvia il servizio SSH su CentOS
Dopo l'installazione, dobbiamo avviare il servizio di OpenSSH altrimenti, non saremmo in grado di accedervi tramite alcun strumento client da Windows, Linux o altri sistemi. Tuttavia, dopo averlo attivato con successo, potremmo facilmente connetterci e stabilire una connessione sicura. Quindi, esegui il comando seguente:
Avvia il demone SSH del server OpenSSH:
sudo systemctl start sshd
Nel caso tu voglia interromperlo, il comando sarà
sudo systemctl stop sshd
3. Controlla lo stato di sshd
Per sapere dopo aver avviato il servizio SSH se funziona perfettamente o meno. Esegui il comando:
sudo systemctl status sshd
Vedrai un colore verde "attivo (in esecuzione) ” testo sullo schermo che confermerà che tutto è a posto.
4. Abilita il servizio OpenSSH a livello di avvio
Se desideri avviare SSH automaticamente ogni volta che riavvii il sistema. Quindi utilizzare il comando seguente. Questo assicurerà anche che non sarà necessario avviarlo ogni volta manualmente.
sudo systemctl enable sshd
Per disabilitare in futuro (comando opzioni) esegui:
sudo systemctl disable sshd
5. Consenti firewall porta 22
Nel caso in cui anche dopo aver eseguito tutti i passaggi, non saresti in grado di accedere al server ssh dal client a causa di un firewall, quindi consentirlo. Per consentire l'esecuzione della porta SSH 22 su CentOS 8 Linux:
firewall-cmd --zone=public --add-port=22/tcp --permanent
Riavvia Firewall:
firewall-cmd --reload
6. Connettiti al server SSH
Per connetterti e accedere a CentOS tramite SSH, apri semplicemente un prompt dei comandi in Windows o Terminal in Linux e digita un comando con questa sintassi:
ssh [email protetta]
Ad esempio- diciamo che il nome utente è root e l'indirizzo del server è 192.168.0.12, quindi il comando sarà:
ssh [email protected]
Se hai modificato la porta predefinita 22 a qualcos'altro allora sarà:
ssh [email protetta]:porta
7. Modifica la porta SSh predefinita su CentOS 8/7 (opzionale)
Per impostazione predefinita, la porta utilizzata da SSH è 22 , tuttavia, per migliorare la sicurezza puoi cambiarlo in qualcos'altro. Per quella modifica SSHD file di configurazione.
sudo vi /etc/ssh/sshd_config
- Ora, trova la riga #port 22
- Premi Inserisci tasto sulla tastiera.
- Rimuovi # e cambia sshd 22 port con qualcos'altro, diciamo 5678
- Per salvare il file, premi Esc chiave e quindi digitare :wq
Riavvia il servizio sshd per rendere effettive le modifiche.
service sshd restart
Se ricevi un errore:
Redirecting to /bin/systemctl restart sshd.service Job for sshd.service failed because the control process exited with error code. See "systemctl status sshd.service" and "journalctl -xe" for details.
Ciò significa che devi concedergli i permessi SELinux informando che hai aggiunto una nuova porta per il servizio.
semanage port -a -t ssh_port_t -p tcp 5678
Nota :sostituisci il 5678 con il numero di porta che hai inserito in sshd file di configurazione sopra
Ancora una volta se ricevi un errore del tipo:
ValueError: Port tcp/5678 already defined
Ciò significa che la porta che stai scegliendo di utilizzare con il servizio SSH è già assegnata o riservata per qualche altro servizio. Pertanto, modifica il numero di porta nel file di configurazione ed esegui nuovamente il comando semange port .
Dopo averlo aggiunto con successo, controlla quali porte sono consentite da SELinux sul tuo sistema per il servizio SSHD:
semanage port -l | grep ssh
Otterrai qualcosa del genere:
ssh_port_t tcp 5678, 22
Infine, hai due porte per un unico servizio.
9. Blocca la porta CentOS predefinita 22
Poiché abbiamo due porte per un singolo servizio Secure Shell, possiamo bloccare quella predefinita che è 22 per permanente. Ciò aumenterà la sicurezza del sistema e ci consentirà di utilizzare solo un numero di porta personalizzato per il servizio.
firewall-cmd --direct --add-rule ipv4 filter INPUT -p tcp --dport 22 -j REJECT
Ora, consenti il numero di porta personalizzato che hai creato nel firewall, qui nel nostro caso è 5678
firewall-cmd --add-port=5678/tcp --permanent
firewall-cmd --reload
Ora non sarai in grado di connetterti tramite quello predefinito e se provi, avverrà tramite un errore:ssh: connect to host 192.168.0.107 port 22: Connection refused
Per connetterti usando la porta ssh personalizzata, usa questa sintassi del comando:
ssh -p 5678 [email protected]
Nel comando sopra 5678 è il numero di porta, quindi sostituiscilo con quello che hai.
Ad esempio:
ssh -p 5678 [email protected]
10. Disabilita l'accesso come root (opzionale)
Per aumentare ulteriormente la sicurezza del server, puoi disabilitare l'accesso dell'utente root su SSH. Ciò implica che da remoto si può accedere e controllare il server utilizzando solo utenti non root.
Modifica di nuovo il file di configurazione SSHD:
sudo vi /etc/ssh/sshd_config
- Usa i tasti freccia e trova la riga:"PermitRootLogin=yes “
- Premi Inserisci tasto sulla tastiera.
- Cambia il valore "sì con no".
- Premi Esc chiave e digita- :wq
- Premi Invio Chiave
service sshd restart
11. Disinstalla OpenSSH
Per rimuoverlo:
dnf remove openssh-server
Leggi di più:
- Installa e configura VNC Server su CentOS 8
- Come installare la GUI sul server CentOS 8 Minimal CLI