Traductions de cette page:
Piste : ssh_native

Comment se connecte à un serveur distant de manière sécuritaire sous Mac OS X et Linux

Comment se connecte à un serveur distant de manière sécuritaire sous Mac OS X et Linux

Introduction

Les communications entre clients et serveurs ne se font plus de manière ouvertes comme à une certaine époque (voir Telnet): un serveur bien configuré ne devait plus accepté de connections non-sécurisées… Par conséquent, la plupart du temps, il faudra utiliser SSH, une méthode par défaut encryptée et sécurisée.

SSH fonctionne avec une logiciel serveur (sshd), qui fonctionne dans l'arrière-plan du serveur qui reçoit les communications et un logiciel client (ssh), qui initie les connexions vers un serveur sshd. Ces deux logiciels sont toujours présents sur Mac OS X et presque toujours présents sur Linux (il est parfois nécessaire d'installer sshd à part, ssh étant toujours présent).

Une chose évidente: une telle communication ne peut se faire que si le serveur distant le permet! Par exemple:

  • Il faut que sshd fonctionne sur le serveur distant;
  • Le service sshd ne bloque pas certains usagers ou certaines adresses IP;
  • Il faut que le réseau sur lequel est branché le serveur distant vous soit accessible, soit directement (adresse/nom de domaine visible sur l'Internet) ou indirectement (accès sécurisé via un VPN).

Protocole avec mot de passe

  • Une connexion est très facile; comme valeur de username, utilisez le nom d'usager que vous avez sur le serveur distant. Attention: si vous n'entrez pas de nom d'usager, ssh utilisera votre nom local, qui pourrais évidemment être différent…

 
# Première façon: 
% ssh username@addresse.ip.serveur.distant 
# Deuxième façon: 
% ssh username@nom.serveur.distant 

  • ssh vous demandera alors de tapez le mot de passe pour accéder au serveur distant; simplement procéder tel que demandé :-)
  • Lors d'une première connexion à un serveur, ssh vous demandera d'accepter la clé du serveur distant; simplement taper Yes. Tapez Y n'est pas suffisant… Il ne le demandera plus à l'avenir.
    • Note: l'information des clés connues est stockée dans un fichier qui s'appelle known_hosts que vous trouverez dans le répertoire .ssh qui se trouve dans votre répertoire home.
  • Vous devriez être maintenant dans votre répertoire home distant.

Protocole sans mot de passe

  • Il est parfois fort utile d'accéder à un serveur distant sans avoir à utiliser de mot de passe, par exemple, si on veut automatiser certaines opérations comme des sauvegardes sans interventions humaines. Comment sshd fait alors pour vous reconnaitre? Il faut simplement lui fournir un preuve de votre identité via une clé publique que vous devez lui fournir.
  • Étape préliminaire: vérifiez que vous n'avez pas déjà une clé d'identification:

 % ls -al ~/.ssh/id_*.pub 

  • Si cette commande vous retourne une sortie comme id_rsa.pub ou bien id_dsa.pub, vous avez déjà votre clé ;-)
  • Si vous n'avez rien eu comme sortie avec la commande précédente alors dans un terminal, créez votre clé public qui servira à identifier votre client de manière unique:

 
# Une possibilité: 
% ssh-keygen -t rsa -b 4096 -C "votre_courriel@blablabla.org" 
# Une autre possibilité, en utilisant un autre algorithme de création de clé: 
% ssh-keygen -t dsa -b 4096 -C "votre_courriel@blablabla.org" 

  • À chaque fois que le programme vous demande d'entrer un choix ou une information, pressez ENTER pour le choix par défaut ou ne rien mettre.
  • Vous devriez avoir maintenant deux fichiers dans le répertoire .ssh contenu dans votre répertoire racine: id_rsa (clé privée) et id_rsa.pub (clé publique). Il vous faut maintenant transmettre l'information contenu dans id_rsa.pub au serveur distant:

 
% ssh-copy-id remoteusername@serveur.blablabla.org 

  • Le programme vous demandera le mot de passe pour accéder à votre compte sur le serveur distant. Si tout va bien, vous reviendrez au prompt de votre console. Testez votre nouvelle connexion:

 
% ssh remoteusername@serveur.blablabla.org 

  • Vous devriez maintenant accéder à votre compte sans mot de passe ;-) Le serveur distant vous reconnait grace à votre clé privée qui, en association à la clé publique sur le serveur, forme un combinaison unique à vous. De plus, la combinaison clé privée et clé publique permet la cryptographie asymétrique de vos communications.
fr/impilopedia/unix/ssh_native.txt · Dernière modification : 2021/09/09 09:40 de foisys
CC Attribution-Share Alike 4.0 International Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : CC Attribution-Share Alike 4.0 International