7
septembre
2021
15:13

Configurer le serveur SSHD et le client SSH sous Linux

7 septembre 2021 15:13

Parfois, vous devez vous connecter via SSH à votre ordinateur personnel ou professionnel pour le configurer.

Plan d'installation

  1. Installez SSHD sur un serveur de production Ubuntu Linux.
  2. Configurez SSHD sur le serveur. Au lieu du port TCP 22 par défaut pour le service SSH, dans cet exemple, nous utiliserons le port 22334.
  3. Le serveur SSHD doit être opérationnel en permanence. Autorisez le service SSHD à démarrer.
  4. Le pare-feu UFW local doit être configuré pour autoriser l'accès externe au port 22334/TCP.
  5. Si vous envisagez de vous connecter depuis Internet, vous devez transférer depuis le port WAN du routeur, le port 22334, vers l'adresse IP de l'ordinateur sur le réseau local.
  6. Installez SSH sur le client MX Linux (Debian 11 "Buster" ou Debian 12 "Bookworm")
  7. Connectez-vous via SSH du client au serveur.

À la fin de l'article, j'ai abordé le transfert X11.

Étape 1. Installez SSHD sur le serveur

Installation de SSHD sur Ubuntu Linux - les paramètres de la commande apt-get spécifient le nom du méta-paquet ssh :

sudo apt-get install ssh

Cette commande installera les packages openssh-client и openssh-server en même temps.

Étape 2. Configuration d'un serveur SSHD

Configuration de SSHD sur un ordinateur auquel nous nous connectons en externe
Je copie d'abord dans bak, c'est-à-dire que je mets de côté le fichier de configuration SSHD d'origine :

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.COPY

Correction du fichier de configuration selon les instructions en tenant compte du fait que la connexion s'effectuera à l'aide d'un mot de passe.$

Je l'ai corrigé en utilisant l'éditeur "nano":

sudo nano /etc/ssh/sshd_config

Mon fichier de configuration sshd_config je cite ci-dessous (vous pouvez le copier-coller) :

cat /etc/ssh/sshd_config | grep \#-v

Include /etc/ssh/sshd_config.d/*.conf
Port 22334
AddressFamily inet
ListenAddress 0.0.0.0
PermitRootLogin no
MaxAuthTries 6
MaxSessions 1
PasswordAuthentication yes
PermitEmptyPasswords no
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server

Étape 3 : Configuration du service SSHD pour démarrer sur le serveur Ubuntu

Le service SSHD est utilisé sur le serveur pour l'administration à distance du serveur et pour s'y connecter depuis l'extérieur.

Autoriser le service SSHD à s'exécuter en continu au démarrage du système d'exploitation - par nom de service ssh.service :

sudo systemctl enable ssh

Redémarrage du démon sshd pour appliquer les modifications au fichier de configuration sur le serveur (PC hôte).

sudo systemctl restart ssh

Le nom du service est un - ssh. Le nom sshd est un alias. Si vous accédez au service ssh par votre nom sudo systemctl enable sshd.service - команда не сработает (ошибка "Failed to restart sshd.service: Unit sshd.service not found."). Потому что основная служба называется ssh.service, а её псевдоним - sshd.service. Вывод: для управления службой sshd используется имя службы ssh. Команды sudo systemctl restart ssh и sudo systemctl restart sshd ils font la même chose, mais la première est préférable.

Étape 4 : Configurer le pare-feu UFW local

Démarrez et autorisez ufw à démarrer après le redémarrage, avec une seule commande.

sudo systemctl enable --now ufw

Vérifiez :

sudo systemctl status ufw

Pour ouvrir le port "secret" 22334 du serveur sshd sur le pare-feu, j'ai exécuté une commande qui ajoute une règle d'autorisation :

sudo ufw allow 22334

Afficher les règles du pare-feu ufw :

sudo ufw show added

Étape 5. Redirection de port

Depuis que j'ai testé la tâche au sein du réseau local, je saute ce point. N’importe qui peut configurer indépendamment le transfert d’un port SSH « secret » sur un routeur Internet. Si un tunnel VPN est utilisé, la redirection de port, ce qui est évident, n'est pas nécessaire.

Étape 6. Installez ssh sur un netbook exécutant MX Linux (Debian)

Sur Debian, la commande d'installation ssh est légèrement différente de celle sur Ubuntu :

sudo apt-get install ssh

Étape 7. Connectez-vous au serveur SSH depuis le client

Si le serveur possède une adresse IP statique "blanche", la connexion à celui-ci depuis le client s'effectue avec la commande

ssh user@123.45.67.8 -p 22334

où utilisateur est le login utilisateur qui doit exister sur le serveur,
123.45.67.8 - adresse IP du serveur,
22334 - Port SSH.

Lorsque vous vous connectez pour la première fois, il y aura un message de confiance dans le serveur, auquel vous répondrez « oui » depuis le clavier.
Ensuite, vous devez entrer mot de passe à votre compte utilisateur, et vous serez redirigé vers la console du serveur (session de terminal).

Si la clé/le certificat du serveur a changé (par exemple, le système d'exploitation a été réinstallé), alors le message « AVERTISSEMENT : L'IDENTIFICATION DE L'HÔTE À DISTANCE A CHANGÉ » apparaîtra et la connexion n'aura pas lieu. Si vous êtes sûr que tout est en ordre avec la machine, le serveur a simplement été réinstallé, effectuez sur le client la suppression de l'ancienne empreinte digitale du certificat du serveur, avec la commande qui sera écrite dans le message, par exemple :ssh-keygen -f "/home/user/.ssh/known_hosts" -R "\[123.45.67.8\]:22334.

Conclusion

Le paramétrage est terminé. La connexion au serveur distant via SSH est terminée.

Prochaines étapes

Si vous prévoyez de vous connecter fréquemment au serveur depuis la même machine, au lieu d'une protection par mot de passe, vous pouvez configurer une connexion au serveur SSH à l'aide de certificats générés par le programme "ssh-keygen", comme décrit dans article itproffi.ru.

Résoudre le problème avec le transfert X11

(Addenda du 15 novembre 2023).
Après avoir suivi les instructions, j'ai accédé au serveur en mode texte ssh, mais il n'était pas possible de travailler depuis le terminal client en mode X11 forwarding (ssh -X ...) puis lors de l'exécution d'applications de serveur graphique sur le client, par exemple, lors d'un lancement depuis une session ssh xclock une erreur s'est produite "Connecter le port localhost 6000 : connexion refusée. Erreur : impossible d'ouvrir l'affichage : localhost:10.0". Ce problème n’est en aucun cas résolu dans le terminal client. Je l'ai eu comme ceci :

Sur le client :

sudo apt install putty

Puis -
Démarrer - Internet - Client Putty SSH

"Configuration" - connexion - SSH - activer la compression
"Configuration" - connexion - SSH -X11-Activer le transfert X11
"Configuration" - "Séance"- saisi l'adresse IP et le port du serveur
"Configuration" - "Séance" - séances enregistrées -Mon- enregistrer

  • sélectionné Mon
  • pressé "Ouvrir"
  • entré le nom d'utilisateur et le mot de passe
  • Je suis entré dans la session du serveur
    vérifier :echo $DISPLAY должна выводить localhost:10.0. (Если это не так, выполнить export DISPLAY=:10.0)
    xclock или `
  • xclock démarré sur l'écran client (exécuté sur le serveur) ! Hourra !
    sudo apt install xsysinfo
    xsysinfo- des informations sur la charge du cœur du serveur en temps réel.

    Liens:

  • Description des options dans le fichier de configuration sshd_config


Publications connexes