Aller au contenu principal

config-ssh-host-remote

Comment utiliser SSH pour se connecter à un serveur distant

Introduction

SSH est Un outil essentiel pour maîtriser en tant qu'administrateur système. SSH, ou Secure Shell, est un protocole utilisé pour se connecter solidement aux systèmes distants. C'est le moyen le plus courant d'accéder aux serveurs Linux à distance.

Nous allons de comment utiliser SSH pour se connecter à un système distant.

Syntaxe de base

Pour se connecter à un système distant utilisant SSH, nous utiliserons le sshcommandement.

Cette commande suppose que votre nom d'utilisateur sur le système distant est le même que votre nom d'utilisateur sur votre système local.

ssh remote_server -p 22

Si votre nom d'utilisateur est différent sur le système distant, vous pouvez le spécifier en utilisant cette syntaxe:

ssh name_host_remote@ip -p 22

[Notes]:

Une fois que vous vous êtes connecté au serveur, il peut vous être demandé de vérifier votre identité en fournissant un mot de passe.

Plus tard, nous allons couvrir comment générer des clés à utiliser au lieu des mots de passe.

Pour quitter la session ssh et revenir à votre session locale de coquille, tapez:

exit

Comment le SSH fonctionne-t-il?

SSH fonctionne en connectant un programme client à un serveur ssh, appelé sshd.

Dans la section précédente, ssh était le programme client. Le serveur ssh fonctionnait déjà sur le name_host_remote que nous avons spécifié.

Sur presque tous les environnements Linux, sshd le serveur doit démarrer automatiquement.

S'il ne fonctionne pas pour une raison quelconque, vous devrez peut-être accéder temporairement à votre serveur via une console Web ou une console de série locale.

Le processus nécessaire pour démarrer un serveur ssh dépend de la distribution de Linux que vous utilisez.

Pour démarrer le serveur sshd, et vous pouvez alors vous connecter à distance.

sudo systemctl status ssh
sudo systemctl start ssh

Comment configurer SSH

Lorsque vous changez la configuration de SSH, vous changez les paramètres du sshd serveur.

Dans Ubuntu, le principal sshd Le fichier de configuration est situé à l'adresse suivante: /etc/ssh/sshd_config

  1. Sauvegarde de la version actuelle de ce fichier avant d'éditer:
sudo cp /etc/ssh/sshd_config{,.bak}

Pour acceder au fichier utilisez cette commande: Ici j'utilise l'éditeur nano

sudo nano /etc/ssh/sshd_config

Vous voudrez laisser la plupart des options dans ce seul fichier. Cependant, il y en a quelques-uns que vous voudrez peut-être jeter un coup d'œil à:

  1. Le port: La déclaration du port précise quel port sshdserveur écoutera les connexions. Par défaut, c'est 22. Vous devriez probablement laisser ce cadre seul, à moins que vous n'ayez des raisons spécifiques de faire autrement. Ce que je vous conseille de chnager le numéro du port en modifiant 22 à 44 par eemple cela, pour la sécurité de votre infra.
Port 22

Les déclarations de clés d'hôte précisent où rechercher les clés hôtes globales.

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key

Ces deux éléments indiquent le niveau d'enregistrement qui devrait se produire.

Si vous rencontrez des difficultés avec SSH, augmenter la quantité d'exploitation forestière peut être un bon moyen de découvrir quel est le problème.

SyslogFacility AUTH
LogLevel INFO

Ces paramètres spécifient certaines des informations de connexion. LoginGraceTime précise combien de secondes pour maintenir la connexion en vie sans s'enregistrer avec succès.

C'est peut-être une bonne idée de fixer cette fois un peu plus que le temps (120) qu'il vous faut pour vous connecter normalement.

PermitRootLogin sélectionne si l'utilisateur racine est autorisé à se connecter.

Dans la plupart des cas, il convient de le modifier à no lorsque vous avez créé un compte utilisateur qui a accès à des privilèges élevés (par le biais de su ou sudo) et peut se connecter via SSH afin de minimiser le risque que toute personne accède à votre serveur.

strictMode s'est un garde-fou qui refusera une tentative de connexion si les fichiers d'authentification sont lisibles par tout le monde.

Cela empêche les tentatives de connexion lorsque les fichiers de configuration ne sont pas sécurisés.

LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

Ces paramètres configurent une capacité appelée X11Forwarding. Cela vous permet de visualiser l'interface utilisateur graphique (GUI) d'un système distant sur le système local.

Cette option doit être activée sur le serveur et donnée au client SSH pendant la connexion avec le -X option.

X11Forwarding yes
X11DisplayOffset 10

Si vous avez changé d'installation dans /etc/ssh/sshd_config, assurez-vous de recharger votre sshdserveur pour mettre en œuvre vos modifications:

sudo systemctl reload ssh

Comment se connecter à SSH avec des clés

Bien qu'il soit utile de pouvoir se connecter à un système distant en utilisant des mots de passe, il est plus rapide et plus sûr pour configurer l'authentification basée sur les clés.

Comment fonctionne l'authentification à base de clés?

  • L'authentification à clé fonctionne en créant une paire de clés: une clé privée et une clé publique.
  • La clé privée est située sur la machine du client et est sécurisée et gardée secrète.

[Infos]

  1. Lorsque vous tentez de vous connecter à l'aide d'une paire de clés, le serveur utilisera la clé publique pour créer un message pour l'ordinateur client qui ne peut être lu qu'avec la clé privée.

  2. L'ordinateur client envoie alors la réponse appropriée au serveur, qui indiquera au serveur que le client est légitime.

Comment créer des clés SSH

Les clés SSH doivent être générées sur l'ordinateur à partir de laquelle vous souhaitez vous connecter. C'est généralement votre machine locale.

ssh-keygen -t rsa -C "server master"

Vous pouvez être invité à définir un mot de passe sur les fichiers clés eux-mêmes, mais c'est une pratique assez rare, et vous devriez appuyer sur Entrée par l'intermédiaire des invitations pour accepter les valeurs par défaut. Vos clés seront créées à l'adresse suivante: .ssh/id-rsa.pub et .ssh/id-rsa.

Pour consulter vos clés ssh

cd ~/.ssh && ls -l

Regardez les permissions des dossiers avec la commande:

ls -l

Comment transférer votre clé publique au serveur

Si vous avez actuellement un accès par mot de passe à un serveur, vous pouvez lui copier votre clé publique en émettant cette commande:

ssh-copy-id remote_host

Options idéales

Il y a un certain nombre de flags optionnels que vous pouvez fournir lorsque vous vous connectez via SSH.

Certains d'entre eux peuvent être nécessaires pour correspondre aux paramètres de l'hôte distant sshd configuration.

Par exemple, si vous changez le numéro de port dans votre sshdconfiguration, vous devrez faire correspondre ce port côté client en tapant:

ssh -p 44 remote_host

Si vous ne voulez exécuter qu'une seule commande sur un système distant, vous pouvez la spécifier après l'hôte comme:

Vous allez vous connecter à la machine distante, authentifier, et la commande sera exécutée.

ssh remote_host command_to_run

Comme nous l'avons déjà dit, si le transfert X11 est activé sur les deux ordinateurs, vous pouvez accéder à cette fonctionnalité en tapant:

ssh -X remote_host

Désactivation de l'authentification par mot de passe

Si vous avez créé des clés SSH, vous pouvez améliorer la sécurité de votre serveur en désactivant l'authentification uniquement par mot de passe. En dehors de la console, la seule façon de se connecter à votre serveur sera de passer par la clé privée qui associe la clé publique que vous avez installée sur le serveur.

[Avertissement] : Avant de procéder à cette étape, assurez-vous d'avoir installé une clé publique sur votre serveur. Sinon, vous serez enfermés.

En tant que root ou utilisateur avec des privilèges sudo, ouvrir le sshdFichier de configuration:

sudo nano /etc/ssh/sshd_config

Localiser la ligne qui dit PasswordAuthentication, et ne le fait pas pour d'enlever l'attaque #. Vous pouvez ensuite changer sa valeur pour no:

PasswordAuthentication no

Deux autres paramètres qui ne devraient pas avoir besoin d'être modifiés (à condition que vous n'ayez pas modifié ce fichier auparavant) sont PubkeyAuthentication et Challenge ResponseAuthentication. Elles sont fixées par défaut et doivent se lire comme suit:

PubkeyAuthentication yes
ChallengeResponseAuthentication no

Vous pouvez maintenant recharger le daemon SSH:

sudo systemctl reload ssh

L'authentification du mot de passe doit maintenant être désactivée, et votre serveur ne doit être accessible que par l'authentification de clé SSH.

Conclusion

Apprendre SSH profitera grandement à n'importe lequel de vos futurs efforts d'informatique en nuage. Au fur et à mesure que vous utilisez les différentes options, vous découvrirez des fonctionnalités plus avancées qui peuvent vous faciliter la vie. SSH est resté populaire parce qu'il est sûr, léger et utile dans diverses situations.