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 →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:reseau:ssh [26/10/2013 14:07] smolski [Connexion par clés asymétriques] |
doc:reseau:ssh [07/01/2014 22:29] bendia |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== SSH - TP ====== | + | ====== SSH ====== |
- | + | * Objet : tout savoir sur SSH | |
- | * Objets : Connexion à SSH par clés, et relai de ports. | + | * Niveau requis : {{tag>avisé}} |
- | * Niveau requis : DÉBUTANT AVISÉ | + | * Commentaires : //Administrer son serveur à distance, établir un tunnel sécurisé pour relayer des ports, etc... // |
- | * Commentaires : //Connexion à SSH par clés, et relai de ports.// | + | |
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
- | * Le retour sur le forum est ici : [[http://debian-facile.org/viewtopic.php?id=1583 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | + | * Suivi : {{tag>en-chantier}} |
+ | * Mis en forme par bendia le 7/01/2113 à partir des différents tuto | ||
+ | * Testé par <...> le <...> FIXME | ||
+ | * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=1583 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
+ | |||
+ | === 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. | ||
- | ===== Installation ===== | + | ===== Une application client/serveur ===== |
- | On supposera ici que vous avez déjà suivi le tuto [[:doc:reseau:ssh|ssh]] et que vous savez donc les bases. | + | **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 | ||
+ | - la partie cliente : comment faire pour vous connecter à un serveur **ssh** existant, | ||
+ | - 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 [[doc:reseau:scp|la commande SCP]] ou par l'intermédiaire du protocole [[doc:reseau:sftp|SFTP]], | ||
+ | * Pour monter un système de fichier avec [[doc:reseau:sshfs|La commande SSHFS]], | ||
+ | * Pour protéger des communications transitant en clair : on parle alors de tunnel. | ||
===== Connexion par clés asymétriques ===== | ===== Connexion par clés asymétriques ===== | ||
Ligne 40: | Ligne 66: | ||
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. | 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. | ||
- | Vérifiez que la clef dans le fichier se termine bien par votre adresse ip ( Ip Internet ) et non par le nom de votre poste. | ||
- | Si ce n'est pas le cas, remplacer le nom par votre adresse ip. | ||
<code user>ssh-copy-id -i /home/user/.ssh/id_dsa.pub user@192.168.x.x</code> | <code user>ssh-copy-id -i /home/user/.ssh/id_dsa.pub user@192.168.x.x</code> | ||
mot_de_passe (serveur distant) | mot_de_passe (serveur distant) | ||
Ligne 47: | Ligne 71: | ||
Voilà votre clé est en place, maintenant passons à la sécurité de votre système. | 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/// | ||
- | <code root>nano /etc/ssh/sshd_config</code> | ||
- | Puis de modifier les arguments suivant «le cas est pris pour une connection __uniquement par clé__» : | ||
- | |||
- | <code bash>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</code> | ||
- | |||
- | # 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 **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 : | ||
- | <code root>service ssh restart</code> | ||
==== Navigation via SSH ==== | ==== Navigation via SSH ==== | ||
Pour voir les fichiers avec konqueror et Nautilus rien de plus simple | Pour voir les fichiers avec konqueror et Nautilus rien de plus simple | ||
+ | |||
=== Konqueror === | === Konqueror === | ||
Ligne 103: | Ligne 92: | ||
Avec la configuration de base le mot de passe de la session vous sera demandé, avec la clé rien ne vous sera demandé. | 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 ==== | ==== Tunnel chiffré en SSH ==== |