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

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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:client [19/08/2013 22:16]
captnfab
doc:reseau:ssh:client [12/01/2014 21:54]
bendia [Installation]
Ligne 1: Ligne 1:
-====== ​La commande ​SSH ======+====== SSH coté client======
  
-  * Objet : Administration à distance avec SSH +  * Objet : Utilisation de ssh comme client 
-  * Niveau requis : DÉBUTANT AVISÉ +  * Niveau requis : {{tag>​avisé}} 
-  * Commentaires : //​Administrer son serveur à distance, établir un tunnel sécurisé pour relayer des ports, etc.// +  * Commentaires : //​Administrer son serveur à distance, établir un tunnel sécurisé pour relayer des ports, etc... // 
-  * Débutant, à savoir : [[manuel:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) - ainsi que : [[commande:su La commande SU]].+  * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) 
 +  * Suivi : {{tag>en-chantier}} 
 +    * Création par <​vous>​ <​date>​ 
 +    * Testé par <...> le <​...>​ 
 +  * 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 !))
  
-===== Introduction =====+=== Nota ===
  
-''​ssh''​ fonctionne sur le mode client/​serveur. +Contributeursles FIXME sont là pour vous aidersupprimez-les une fois le problème corrigé ou le champ rempli !
-  * Il y a d'un côté le serveurla machine que l'on veut administrersur laquelle on veut se connecter, et qui //écoute// sur le port 22; +
-  * Et de l'​autre côté ​le client, la machine depuis laquelle on veut établir la connexion.+
  
-Dans la suite, nous présenterons les deux parties, d'​abord la partie cliente : comment faire pour vous connecter à un serveur ''​ssh''​ existant, et ensuite la partie serveur : comment configurer votre machine pour qu'​elle puisse jouer le rôle de serveur ''​ssh''​. +===== Introduction ​=====
- +
-===== Client SSH =====+
  
-Lorsque vous démarrez ​votre ordinateur, à moins que vous n'ayez configuré de connexion automatique,​ il vous est demandé un nom d'​utilisateur et un mot de passe. C'est le processus de //login// qui vous permet de vous authentifier en tant qu'​utilisateur de la machine. À l'​issue de cette authentification,​ vous avez accès à une interface vous permettant de lancer des commandes, souvent une interface graphique comme [[:manuel:gnome3.4|GNOME]], mais cela peut également être un //shell//.+Lorsque vous démarrez ​un ordinateur, à moins que vous n'ayez configuré de connexion automatique,​ il vous est demandé un nom d'​utilisateur et un mot de passe. ​\\ 
 +C'est le processus de //login// qui vous permet de vous authentifier en tant qu'​utilisateur de la machine. ​\\ 
 +//À l'​issue de cette authentification,​ vous avez accès à une interface vous permettant de lancer des commandes, souvent une interface graphique comme [[:doc:programmation:​shell:​shell|shell]].//
  
-Le principe ici va être le même : via un canal sécurisé((mais ça, c'est ssh qui s'en charge via openssl)) vous allez fournir un nom d'​utilisateur et un mot de passe à une machine, cette fois-ci ​distante.+Le principe ici va être le même : \\ 
 +via un canal sécurisé((mais ça, c'est ssh qui s'en charge via openssl)) vous allez fournir 
 +  - un nom d'​utilisateur et 
 +  - un mot de passe 
 +mais cette fois, depuis votre PC à une machine distante.
  
-==== Installation ====+===== Installation ​=====
  
 Comme d'​habitude,​ ça tient en une ligne : Comme d'​habitude,​ ça tient en une ligne :
-<​code ​bash>apt-get install openssh-client</​code>​+<​code ​root>apt-get install openssh-client</​code>​
  
 ==== Utilisation ==== ==== Utilisation ====
  
-Pour pouvoir accéder à une machine via la couche IP (qu'​utilise SSH), il nous faut soit l'​adresse IP de la machine, soit son nom d'​hôte. Par exemple, pour le serveur Debian, vous pouvez lui envoyer des ping via « ping debian.org » ou via « ping 128.31.0.51 ​».+Pour pouvoir accéder à une machine via la couche IP (qu'​utilise SSH), il nous faut 
 +  * soit l'​adresse ​[[:​doc:​reseau:​ip-publique|IP]] de la machine, 
 +  * soit son nom d'​hôte. 
 +Par exemple, pour se connecter au serveur Debian, vous pouvez lui envoyer des [[:​doc:​reseau:​ping]] via son IP ainsi : 
 +<code user>ping 128.31.0.51</​code>​ 
 +ou via son nom d'​hôte : 
 +<code user>​ping debian.org</​code>​
  
 === Obtenir un shell distant === === Obtenir un shell distant ===
  
-Pour vous connecter sous le nom d'​utilisateur //jojo// sur la machine d'IP //​coincoin//,​ vous faites simplement : +Par exemple, pour vous connecter sous le nom d'​utilisateur((user)) ​//jojo// sur la machine d'IP //​coincoin//​((PAN !)), vous faites simplement : 
-<​code ​bash>ssh jojo@coincoin</​code>​+<​code ​user>ssh jojo@coincoin</​code>​
  
 Si le serveur ssh distant n'​écoute pas sur le port 22, vous pouvez spécifier le port à l'aide de l'​option ''​-p''​ : Si le serveur ssh distant n'​écoute pas sur le port 22, vous pouvez spécifier le port à l'aide de l'​option ''​-p''​ :
-<​code ​bash>ssh -p 1234 jojo@coincoin</​code>​+<​code ​user>ssh -p 1234 jojo@coincoin</​code>​
  
 === Obtenir un shell distant avec export X === === Obtenir un shell distant avec export X ===
  
-Il est possible de lancer ​une application graphique ​sur le serveur distant qui s'​affichera sur votre ordinateur client. +Il est aussi possible de lancer sur le serveur distant ​une application graphique ​qui s'​affichera sur votre ordinateur client.
-Pour vous connecter sous le nom d'​utilisateur //jojo// sur la machine d'IP //​coincoin//​ et obtenir l'​export X, vous faites simplement : +
-<code bash>ssh -X jojo@coincoin</​code>​+
  
-Il suffit ensuite de lancer votre application graphique via le shell obtenu. 
  
-=== Rediriger un port local vers un port distant ===+Pour vous connecter sous le nom d'​utilisateur //jojo// sur la machine d'IP //​coincoin//​ et obtenir l'​export X, 
 +  - vous faites simplement :<code user>ssh -X jojo@coincoin</​code>​ 
 +  - Puis vous lancez votre application graphique via le shell obtenu.
  
-FIXME+==== Authentification ====
  
-=== Rediriger un port distant ​vers un port local ===+=== Par nom d'​utilisateur/​mot de passe === 
 + 
 +Le nom d'​utilisateur est spécifié dans la commande de connexion. Le serveur nous demande alors notre mot de passe pour nous connecter, de la même façon que sur une machine locale 
 + 
 +<code user>ssh jojo@coincoin</​code>​ 
 + 
 +Ce à quoi le serveur vous répond :  
 + 
 +    jojo@coincoin'​s password: 
 + 
 + 
 +=== Par clés asymétriques === 
 + 
 +Les mots de passes sont souvent peu complexes. On peut alors utiliser une paire de clé publique/​privée plus complexe et plus sûre. 
 + 
 +Le principe est le suivant, on génère une paire de clé. La clé privé reste sur votre poste client. La clé publique doit être transférée sur le serveur manuellement ou par le réseau. C'est cette clé qui servira alors à l'​authentification. 
 + 
 +== Création de la cle == 
 + 
 +<code user>​ssh-keygen -t dsa</​code>​ 
 +<​code>​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) 
 +</​code>​ 
 +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
 + 
 +<code user>​ssh-copy-id -i /​home/​user/​.ssh/​id_dsa.pub user@192.168.x.x</​code>​ 
 +  mot_de_passe (serveur distant) 
 +   
 +Notez qu'on peut égalementcopier sur la clé usb le fichier contenant la clé publique du client ''​~/​.ssh/​id_rsa.pub'',​ puis copier-coller le contenu de ce fichier dans le fichier ''​~/​.ssh/​authorized_keys''​ qui se trouve sur le serveur. 
 + 
 +A présent, lors de votre connexion, seule votre éventuelle //​passphrase//​ iniqué lors de la génération de la clé vous sera demandé, mais plus votre mot de passe. 
 + 
 +=ssh-agent ​==
  
 FIXME FIXME
 +
 +=== Navigation via SSH ===
 +
 +Pour voir les fichiers avec konqueror et Nautilus rien de plus simple
 +
 +== Konqueror ==
 +
 +<code user>​fish://​user@192.168.x.x</​code>​
 +        ​
 +== Nautilus ==
 +
 +<code user>​ssh://​user@192.168.x.x:​22</​code>​
 +
 +=== 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.
 +<code root>ssh -L 5901:​localhost:​5900 user@80.80.80.80</​code>​
 +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.
  
 ==== Configuration ==== ==== Configuration ====
  
-Par défaut, SSH n'a pas besoin de configuration. Cependant, ​il est possible ​pour se simplifier la vie ou pour les cas particuliers de préciser quelques informations sur les connexions que l'on effectue régulièrement.+Par défaut, SSH n'a pas besoin de configuration. Cependant, pour se simplifier la vie ou pour les cas particuliers, il est possible ​de préciser ​préalablement ​quelques informations sur les connexions que l'on effectue régulièrement.
  
-Cela se fait au moyen de l'​édition du fichier ''​~/​.ssh/​config''​à créer s'il n'​existe pas.+Cela se fait au moyen de l'​édition du fichier ​de configuration ​''​~/​.ssh/​config''​((à créer s'il n'​existe pas déjà)) : 
 +<code user>​nano ~/.ssh/​config</​code>​
  
-Si vous vous connectez régulièrement sur l'​ordinateur de votre maman, d'IP ordi.de.ma.maman sous le nom d'​utilisateur ''​gaston'',​ et sachant que son serveur ​écoute ​sur le port 444, ajoutez ceci dans le fichier de configuration :+Si vous vous connectez régulièrement sur l'​ordinateur de votre maman, d'​IP ​''​ordi.de.ma.maman ​'' ​sous le nom d'​utilisateur ''​gaston '',​ et sachant que son serveur ​ssh est configuré pour écouter ​sur le ''​port 444 ''​, ajoutez ceci dans votre fichier de configuration :
  
   Host maman   Host maman
Ligne 66: Ligne 141:
   Port 444   Port 444
   ​   ​
-Il vous suffit maintenant de taper la ligne suivante ​pour vous connecter sur l'ordi de votre môman : +Et, pour vous connecter sur l'ordi de votre môman, il vous suffira maintenant de taper simplement la ligne suivante ​
-<​code ​bash>ssh maman</​code>​+<​code ​user>ssh maman</​code>​
  
-Vous pouvez ​rajouter ​plusieurs //alias// comme celui-ci ​dans le fichier de configurationPour une liste de toutes les options disponibles,​ et il y en a une… floppée : +<​note>​Dans le même fichier de configuration,​ vous pouvez ​ajouter ​plusieurs //alias// comme celui-ci.</​note>
-<code bash>man ssh_config</code>+
  
-==== Recommandation importante ====+ Host ServeurA 
 + IdentityFile ~/​.ssh/​cleA 
 + Host ServeurB 
 + IdentityFile ~/.ssh/cleB
  
-Jojo vous recommande de ne pas ouvrir cette connection SSH tel quelle sur le net... il y a des malins qui forcent le passage pour entrer chez vous en essayant des tetra…floppées de mot de passes courants ;-). 
  
-Donc si vous voulez exporter ​une session SSH via un PC a 18 000 km :-D de chez vousrestez prudents ​et sécurisez-là au maximum, ​en utilisant par exemple ​une clé RSA (voir par la suite dans les TP)+Pour une liste de toutes les options disponibles, et il y en a... //une floppée// ! Tapez : 
 +<code user>man ssh_config</​code>​
  
 ==== Problèmes courants ==== ==== Problèmes courants ====
Ligne 82: Ligne 159:
 === Après réinstallation du serveur === === Après réinstallation du serveur ===
  
-Si le pc serveur est réinstallé,​ la clé unique l'​identifiant est changée. Le client va détecter le changement et soupçonner que quelqu'​un d'​autre essaye de se faire passer pour le serveur original. Vous obtiendrez un message comme celui-ci :+Si le pc serveur est réinstallé,​ la clé unique l'​identifiant est changée. ​\\ 
 +Le client va détecter le changement et soupçonner que quelqu'​un d'​autre essaye de se faire passer pour le serveur original ​et vous obtiendrez ​alors un message comme celui-ci :
  
-<​code>​ssh user@192.168.X.XX +<​code>​@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! ​    @ @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! ​    @
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Ligne 99: Ligne 176:
 Host key verification failed.</​code>​ Host key verification failed.</​code>​
  
-Ce message indique la ligne contenant l'​empreinte de l'​ancien serveur : +Ce message indique la ligne contenant l'​empreinte de l'​ancien serveur ​ici 
-   ​Offending key in /home/user/​.ssh/​known_hosts:​9+   ​Offending key in ~/​.ssh/​known_hosts:​9
  
-Il faut donc supprimer la 9ème ligne de son fichier ​+Dans cet exempole, il faut alors supprimer la 9ème ligne de son fichier ​''​/​home/​user/​.ssh/​known_hosts''​
-   /​home/​user/​.ssh/​known_hosts+
  
-Donc nous éditons(([[manuel:​vim]])) ​simplement ​ce fichier en user(([[commande:su]])) : +Donc nous éditons(([[:​doc:​editeurs:vim:vim]] ou [[:​doc:​editeurs:​nano]])) ce fichier en user(([[:​doc:​systeme:su]])) : 
-<​code ​bash> +<​code ​user>nano ~/.ssh/​known_hosts</​code>​
-vim .ssh/​known_hosts</​code>​+
  
-et nous supprimons cette 9ème ligne. \\ +et nous supprimons cette 9ème ligne.
-Ainsi, à notre prochain contact vers le serveur, après le //yes// d'​acceptation habituelle, une nouvelle cle d'​identification sera créée et tout ira pour le meilleur des mondes ssh possible.+
  
 +À notre prochain contact vers le serveur, après le //yes// d'​acceptation habituelle, une nouvelle clé d'​identification sera créée et tout ira pour le meilleur des mondes **ssh** possible.
  
 ==== TP ==== ==== TP ====
  
-  * Pour ''​COPIER''​ un fichier sécurisé vous devez vous servir de : [[commande:​scp|SCP]] +  * Pour ''​COPIER''​ un fichier sécurisé vous devez vous servir de : [[:doc:reseau:​scp|SCP]] 
-  * Pour ''​MONTER''​ les fichiers servez-vous de : [[commande:​sshfs|SSHFS]] +  * Pour ''​MONTER''​ les fichiers servez-vous de : [[:​doc:​reseau:​ssh:​sshfs|SSHFS]] 
-  * Utiliser ssh comme un serveur de fichiers : [[manuel:sftp | sftp installation et configuration]]+  * Utiliser ssh comme un serveur de fichiers : [[:doc:reseau:sftp | sftp installation et configuration]] 
  
-===== Serveur SSH ===== 
doc/reseau/ssh/client.txt · Dernière modification: 18/08/2023 21:27 par Jean-Pierre Pinson

Pied de page des forums

Propulsé par FluxBB