logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Ceci est une ancienne révision du document !


SSH

Nota

Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !

Introduction

ssh (Secure SHell) est un protocole de communication réseau et une application qui permettent de crypter et d'authentifier les informations échangées. Il est donc plus difficile de les intercepter.

Une application client/serveur

ssh fonctionne sur le mode client/serveur.

Il y a :

  • d'un côté le serveur, la machine sur laquelle on veut se connecter, et qui écoute par défaut sur le port 22. On peu considérer que c'est la machine à laquelle on a pas d'accès physique en tant qu'utilisateur.
  • et de l'autre côté le client, la machine depuis laquelle on veut établir la connexion. C'est la machine locale où se trouve la clavier qu'on utilise.

Nous allons donc découper cette documentation en plusieurs pages

  1. la partie cliente : comment faire pour vous connecter à un serveur ssh existant,
  2. la partie serveur : comment configurer votre machine pour qu'elle puisse jouer le rôle de serveur ssh.

Différents usages de ssh

ssh peut être utilisé de différentes façon :

  • Pour ouvrir un shell sur une machine distante,
  • Pour transférer des fichiers directement avec la commande SCP ou par l'intermédiaire du protocole SFTP,
  • Pour monter un système de fichier avec La commande SSHFS,
  • Pour protéger des communications transitant en clair : on parle alors de tunnel.

Connexion par clés asymétriques

RSA ou DSA ?

Peu importe.

Générer une clé

Exemple avec une clé DSA.

Pourquoi ne pas autoriser les connexions uniquement par clefs privés/public et interdire les connections standards où les mots de passes passent en clair.

Création de la cle

Le but est de se passer du mot de passe qui au niveau sécurité est trop faible, nous allons généré une clée cryptée unique pour votre PC.

ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_dsa): /home/user/.ssh/nom_fichier
Enter passphrase (empty for no passphrase): (mettre une passphrase qui sera demandée à chaque connexion - ou rien si c'est pas nécessaire pour vous)

Vous validez 2 fois et vous obtiendrez le résultat en détail de la création de votre cle dsa.

Exportation de la cle

Votre clé sera générée en 1024 bits dans votre dossier /home/votre_user/.ssh/ pour la mettre en place il vous suffit de l'exporter sur votre pc distant.

ssh-copy-id -i /home/user/.ssh/id_dsa.pub user@192.168.x.x
mot_de_passe (serveur distant)

Voilà votre clé est en place, maintenant passons à la sécurité de votre système.

Restreindre les connexions à SSH

Il suffit d'éditer le fichier sshd_config en root sur le PC distant. Le fichier se trouve dans le dossier /etc/ssh/

nano /etc/ssh/sshd_config

Puis de modifier les arguments suivant «le cas est pris pour une connection uniquement par clé» :

PermitRootLogin no # évite la connexion root « plus que recommandé »
RSAAuthentication yes # active la reconnaissance RSA
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys # va uniquement chercher la clé sur ce fichier
PasswordAuthentication no # désactive la connexion par mot de passe
PermitEmptyPasswords no # désactive les mots de passe vide
UsePAM no # désactive la connection par mot de passe
AllowUsers votrelogin secondlogin # restreint l'accès à votre login uniquement
DenyUsers test guest admin root snort apache nobody # interdire l'accès à certains users, pour les paranos...
MaxStartups 1 # limite la connexion, normalement 6 par défaut

Restreindre la connexion à un utilisateur

Moins de monde autorisé à se connecter via ssh, moins de risques il y aura…

  AllowUsers **monuserquipeutseconnecter**

Il est possible de spécifier plusieurs utilisateurs ou un masque d'expression régulière, je vous laisse lire la doc pour un paramétrage plus fin

Restreindre la connexion à un groupe

dans le même esprit que le paramètre ci-dessus on peut autoriser directement tous les utilisateurs d'un groupe.

  AllowGroups **mongroupadmin**

Les options qu'il est conseillé de changer dans un premier temps sont :

Le port

  • Le port 22 # C'est le port par défaut du service SSH

Nous allons le mettre ici à 10010

  Port **10010**

Une fois configuré il vous suffit de relancer SSH, à faire en root :

service ssh restart

Pour voir les fichiers avec konqueror et Nautilus rien de plus simple

Konqueror

fish://user@192.168.x.x

Nautilus

ssh://user@192.168.x.x:22

Terminal

Pour te connecter sur un serveur ssh qui n'a pas le port 22 par défaut.

ssh mattux@mon.serveur.org -p 10010

-p 10010 bien sûr à adapter au port ouvert, son numéro !

Avec la configuration de base le mot de passe de la session vous sera demandé, avec la clé rien ne vous sera demandé.

Tunnel chiffré en SSH

Il se peut que vous vouliez établir une connexion distante pour transiter des données de manière 100% transparente et sécurisée, nous allons donc établir un tunnel ssh.

ssh -L 5901:localhost:5900 user@80.80.80.80

Cette technique est très utile pour relier en local un bon nombre d'utilisation, comme sur kde distant, un serveur smtp personnel, une boite mail ( pop ou imap ) personnelle, un bon nombre d'utilisations ont recours à cette technique.

Détail sur la ligne de commande SSH

  • ssh : invoque le protocole
  • -L invoque de la création d'un tunnel crypté
  • 5901 : port coté local
  • localhost : indique que l'accès se fera en local de manière transparente
  • 5900 : port du service distant
  • user@80.80.80.80 : indique avec quelle user et sur quelle ip on va établir la connection.

Commandes annexes

  • Pour COPIER un fichier sécurisé vous devez vous servir de : scp
  • Pour MONTER les fichiers servez-vous de : sshfs
1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
doc/reseau/ssh.1389126549.txt.gz · Dernière modification: 07/01/2014 21:29 par bendia

Pied de page des forums

Propulsé par FluxBB