Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication...

23
Secure Shell #ssh

Transcript of Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication...

Page 1: Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les

Secure Shell

#ssh

Page 2: Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les

Table des matières

À propos 1

Chapitre 1: Démarrer avec Secure Shell 2

Remarques 2

Versions 2

Examples 2

Installation ou configuration 2

Installation 2

Sur Linux basé sur Debian, vous pouvez installer openssh utilisant 3

Sur RHEL / CentOS, vous devez utiliser yum : 3

Sur Arch Linux, utilisez pacman: 3

Sur OSX, le openssh devrait déjà être installé. 3

Instructions TODO pour Windows 3

Installer 3

Configuration 4

Créer votre clé SSH 4

Comment SSH dans une machine 5

Ajout de votre clé publique à la liste des clés autorisées de l'utilisateur du serveur 6

Connexion depuis un script en utilisant un mot de passe 6

Fichier de configuration 7

Agent SSH 7

Chapitre 2: Commandes à distance 9

Examples 9

Bonjour le monde 9

Commandes interactives et basées sur un écran 9

Chapitre 3: Débogage des problèmes ssh 10

Examples 10

La clé privée n'est pas acceptée (débogage des clients OpenSSH) 10

IDENTIFICATION HÔTE À DISTANCE A CHANGÉ! 10

Connexion rejetée 11

La connexion a expiré 12

Page 3: Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les

ssh_exchange_identification: lire: connexion réinitialisée par l'homologue 13

ssh_exchange_identification: connexion fermée par l'hôte distant 13

Chapitre 4: Gestion des fichiers distants via ssh 15

Introduction 15

Examples 15

Montage du répertoire distant via ssh 15

Déplacement de fichiers entre serveurs via ssh 15

Chapitre 5: Travailler avec des clés ssh 16

Examples 16

Convertir PPK (clé PuTTY) au format OpenSSH 16

Chapitre 6: Tuer une session SSH sans réponse 17

Introduction 17

Examples 17

Tuer une session SSH en utilisant le caractère d'échappement 17

Chapitre 7: Tunnels inverses 18

Examples 18

OpenSSH 18

Ligne de commande 18

Configuration 18

Courir en arrière-plan 18

Crédits 20

Page 4: Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les

À propos

You can share this PDF with anyone you feel could benefit from it, downloaded the latest version from: secure-shell

It is an unofficial and free Secure Shell ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which is written by many hardworking individuals at Stack Overflow. It is neither affiliated with Stack Overflow nor official Secure Shell.

The content is released under Creative Commons BY-SA, and the list of contributors to each chapter are provided in the credits section at the end of this book. Images may be copyright of their respective owners unless otherwise specified. All trademarks and registered trademarks are the property of their respective company owners.

Use the content presented in this book at your own risk; it is not guaranteed to be correct nor accurate, please send your feedback and corrections to [email protected]

https://riptutorial.com/fr/home 1

Page 5: Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les

Chapitre 1: Démarrer avec Secure Shell

Remarques

SSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les anciens protocoles utilisés dans le rlogin ( rlogin , rsh , telnet ).

Il est généralement utilisé pour se connecter à des serveurs distants, à des machines virtuelles ou à des conteneurs dans un centre de données ou dans votre cloud privé (moteur de calcul Google, AWS, ...). Mais il est également couramment utilisé en conjonction avec git pour accéder et mettre à jour votre référentiel de manière sécurisée et facile à l'aide de clés publiques plutôt que de mots de passe.

Il devrait également mentionner tous les sujets importants dans ssh, et établir un lien avec les sujets connexes. La documentation de ssh étant nouvelle, vous devrez peut-être créer des versions initiales de ces rubriques connexes. FAIRE

Versions

Version Notes de version Date de sortie

OpenSSH 7.3p1 Dernière version 2016-08-01

OpenSSH 7.2p2 2016-03-09

OpenSSH 7.1p2 2016-01-14

OpenSSH 7.1 2015-08-21

OpenSSH 7.0 2015-11-08

OpenSSH 6.9 2015-07-01

OpenSSH 6.8 2015-03-18

Examples

Installation ou configuration

Version gratuite de l'implémentation du protocole SSH, OpenSSH est disponible dans toutes les distributions Linux. Il se compose des packages serveur et client.

Installation

https://riptutorial.com/fr/home 2

Page 6: Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les

Sur Linux basé sur Debian, vous pouvez installer openssh utilisant

# apt-get install openssh-server openssh-client

Sur RHEL / CentOS, vous devez utiliser yum :

# yum install openssh-server openssh-clients

Fedora actuel utilise dnf au lieu de yum .

Sur Arch Linux, utilisez pacman:

# pacman -S openssh

Sur OSX, le openssh devrait déjà être installé.

Si vous souhaitez utiliser une version plus récente, vous devez installer le openssh de brew:

# brew install openssh --with-brewed-openssl --with-keychain-support

Instructions TODO pour Windows

Installer

Le client openssh ne nécessite aucune configuration particulière et est prêt à être utilisé juste après l’installation. Vous pouvez essayer d'exécuter ssh remote , où la remote est l'hôte distant exécutant le serveur ssh .

Le serveur openssh est généralement démarré après l'installation et la configuration par défaut est appliquée. Sinon, vous pouvez le démarrer sur des systèmes basés sur systemd en utilisant

Sur Linux basé sur Debian avec systemd:

# systemctl start ssh

Sur RHEL / CentOS / Fedora et Arch Linux:

# systemctl start sshd

Ou sur des systèmes novateurs utilisant

https://riptutorial.com/fr/home 3

Page 7: Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les

# service sshd start

Configuration

Le fichier openssh des fichiers de configuration sous /etc/ssh/ . Le client lit également la configuration du client dans ~/.ssh/config . Le serveur utilise un fichier sshd_config , qui contient la plupart des valeurs par défaut et contient des paires clé-valeur simples. Exemple:

Protocol 2 PasswordAuthentication yes ChallengeResponseAuthentication no UsePAM yes AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY X11Forwarding yes Subsystem sftp /usr/libexec/openssh/sftp-server

Créer votre clé SSH

Vous pouvez créer votre clé ssh en utilisant ssh-keygen, c'est un programme qui fait partie de l'installation de ssh. Pour cela, il suffit de l'exécuter et de suivre les instructions à l'écran.

Voici un exemple:

$ ssh-keygen Generating public/private rsa key pair.

Le répertoire par défaut où votre paire de clés ssh sera enregistrée se trouve dans le dossier .ssh de votre répertoire de base (vous pouvez le modifier en spécifiant un chemin valide) et le nom par défaut de la paire de clés est id_rsa pour la clé privée et id_rsa.pub pour la clé publique:

Enter file in which to save the key (/home/nasreddine/.ssh/id_rsa): /home/my_folder/my_ssh_key

Vous pouvez protéger votre clé SSH contre toute utilisation non autorisée en saisissant un mot de passe. Ceci est facultatif mais il est recommandé d'utiliser une phrase de passe. Notez que, comme pour tout autre programme de commande, lors de la saisie de votre phrase secrète, elle n’affiche rien à l’écran, mais elle est enregistrée:

Enter passphrase (empty for no passphrase): Enter same passphrase again:

Une fois que vous avez entré votre phrase secrète, ssh-keygen générera une clé et l'enregistrera dans le chemin que vous avez choisi:

Your identification has been saved in /home/my_folder/my_ssh_key. Your public key has been saved in /home/my_folder/my_ssh_key.pub.

Avaient fini. Maintenant, notre clé ssh est prête à être utilisée.

https://riptutorial.com/fr/home 4

Page 8: Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les

Comment SSH dans une machine

Pour vous connecter à un compte d'utilisateur sur une machine avec SSH, vous pouvez utiliser la commande ssh username@ip_address . Il vous demandera un mot de passe. Si vous tapez le mot de passe correct, vous serez connecté au shell de cet utilisateur sur cette machine. Sinon, il vous demandera à nouveau le mot de passe.

Par exemple

root@dev10:~# ssh [email protected] [email protected]'s password: Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-31-generic x86_64) Last login: Fri Jul 22 18:33:27 2016 from 10.11.50.10 root@dev2:~#

Si vous souhaitez utiliser une clé ssh spécifique pour vous connecter à une machine, utilisez le nom d'utilisateur ssh -i /path/to/ssh_secret_key username@host

Lorsque vous vous connectez à une machine pour la première fois, il vous sera demandé de vérifier l' empreinte de la machine cible. Il s’agit d’un mécanisme de sécurité permettant d’éviter une attaque de type « man-in-the-middle» . Vous pouvez voir l'empreinte de la machine cible en émettant cette commande sur la machine cible.

ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ecdsa_key.pub

Vous pouvez taper "oui" si les deux sont identiques. Il procédera à l'invite de mot de passe.

Exemple:

https://riptutorial.com/fr/home 5

Page 9: Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les

root@dev10:~# ssh [email protected] The authenticity of host '10.11.50.3 (10.11.50.3)' can't be established. ECDSA key fingerprint is dd:a3:de:cd:5b:01:cd:0b:b6:bc:b3:09:c2:c8:1a:68. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.11.50.3' (ECDSA) to the list of known hosts. [email protected]'s password: Last login: Fri Jul 22 17:45:09 2016 from 10.11.1.71 root@dev2:~#

Ajout de votre clé publique à la liste des clés autorisées de l'utilisateur du serveur

Pour que ssh se ssh à un serveur, la clé publique de votre identité doit être ajoutée à la liste des clés approuvées. Le plus souvent, cela se fait par utilisateur:

ssh-copy-id -i ~/.ssh/<identity>.pub <user>@<hostname>

Ce qui peut aussi être fait manuellement:

cat ~/.ssh/<identity>.pub | ssh <user>@<hostname> 'cat >> ~/.ssh/authorized_keys'

Après avoir fait cela, vous devriez pouvoir vous connecter sans avoir à fournir le mot de passe de l'utilisateur lorsque vous transmettez le fichier d'identité à l'appel ssh .

Connexion depuis un script en utilisant un mot de passe

Lorsque vous avez vraiment besoin de scripter la connexion ssh , transférer le mot de passe dans la commande ssh ne fonctionne pas ( echo passw0rd | ssh host ). C'est parce que le mot de passe n'est pas lu depuis l'entrée standard, mais directement depuis TTY (téléscripteur, téléscripteur, télétype pour des raisons historiques).

Mais il existe sshpass outil sshpass qui fonctionne autour de ce problème. Il peut lire le mot de passe du paramètre, du fichier ou de la variable d'environnement. Mais notez qu'aucune de ces options ne répond aux exigences de sécurité pour un mot de passe!

$ sshpass -p passw0rd ssh host $ sshpass -f /secret/filename ssh host $ SSHPASS=passw0rd sshpass -e ssh host

Les options de ligne de commande peuvent être vues par d'autres utilisateurs sous ps (pendant l'exécution, elles sont masquées, mais pas pendant le démarrage et vous ne pouvez pas vous y fier):

... 23624 6216 pts/5 Ss Aug30 0:00 \_ /bin/bash

... 12812 1988 pts/5 S+ 08:50 0:00 | \_ sshpass -p passw0rd ssh host

... 45008 5796 pts/15 Ss+ 08:50 0:00 | \_ ssh host

Notez que les variables environemnet d'un processus sont également accessibles par d'autres

https://riptutorial.com/fr/home 6

Page 10: Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les

processus sur le système utilisant le /proc/PID/environ .

Enfin, stocker le mot de passe dans le fichier peut sembler être la meilleure idée possible, mais utiliser les clés comme décrit dans les autres exemples est la meilleure manière d’utiliser ssh .

Fichier de configuration

Les fichiers de configuration OpenSSH sont utilisés pour la configuration qui doit être appliquée chaque fois que le client ssh est exécuté. La plupart des options de ligne de commande sont possibles dans les fichiers de configuration.

OpenSSH utilise la configuration des sources suivantes dans l'ordre:

Options de ligne de commande1. Fichier de configuration de l'utilisateur ~/.ssh/config2. Fichier de configuration système /etc/ssh/ssh_config3.

Les options de configuration sont répertoriées une par une dans les fichiers de configuration.

# This is a comment. # Parameter can be specified like this, separated with white space. StrictHostKeyChecking ask # Or parameter key and value may be separated with white space and =. ForwardX11 = yes # The parameter value can be quoted if it contains white space. IdentityFile "/file system/path with/white space"

La liste complète des paramètres de configuration possibles est disponible ici .

L'une des fonctionnalités les plus utiles du fichier de configuration est qu'il peut être divisé en fonction du nom d'hôte ou de l'adresse. De cette façon, vous pouvez avoir différentes configurations pour différents hôtes.

# Based on host name. Host host1.domain.com User user1 Host host2.domain.com User user2 # Or wildcard matching name or ip. Host *elastic-cloud.com 10.201.4.? User user3

Agent SSH

Si vous avez défini une longue phrase secrète et que vous ne souhaitez pas continuer à la saisir

https://riptutorial.com/fr/home 7

Page 11: Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les

chaque fois que vous souhaitez vous connecter au serveur, vous pouvez utiliser SSH-Agent pour stocker votre phrase secrète lorsque vous êtes connecté à votre ordinateur.

Démarrez l'agent ssh en arrière-plan:

eval "$(ssh-agent -s)" # Agent pid 59566

Et ajoutez votre clé au ssh-agent, vous serez invité à saisir votre phrase secrète:

ssh-add ~/.ssh/matrix.ac # Enter passphrase for /home/osaka/.ssh/matrix.ac: # Identity added: /home/osaka/.ssh/matrix.ac (/home/osaka/.ssh/matrix.ac)

Terminé. Connectez-vous maintenant avec ssh [email protected] et vous ne devriez pas avoir à saisir votre phrase secrète. Vous pouvez étendre cela en utilisant des programmes tels que gnome-keyring / seahorse, keychain et autres gestionnaires de clés.

Lire Démarrer avec Secure Shell en ligne: https://riptutorial.com/fr/ssh/topic/2070/demarrer-avec-secure-shell

https://riptutorial.com/fr/home 8

Page 12: Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les

Chapitre 2: Commandes à distance

Examples

Bonjour le monde

Pour envoyer une commande distante via SSH (le serveur SSH doit être exécuté sur l'hôte distant), vous pouvez simplement écrire la commande après user @ machine .

ssh [email protected] echo 'Hello World'

Bonjour le monde

Il renvoie la sortie à l'expéditeur, exécutée sur l'hôte distant.

Commandes interactives et basées sur un écran

De nombreuses commandes et programmes du côté distant sont basés sur un écran (par exemple, mc ) ou ils doivent demander un mot de passe (par exemple, sudo ) pour pouvoir exécuter ce type de programme que vous pouvez utiliser avec l'option -t .

ssh -t [email protected] sudo ls /

[sudo] mot de passe pour alice:

bin root dev etc home lib mnt opt proc root exécuter usr var

Lire Commandes à distance en ligne: https://riptutorial.com/fr/ssh/topic/3297/commandes-a-distance

https://riptutorial.com/fr/home 9

Page 13: Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les

Chapitre 3: Débogage des problèmes ssh

Examples

La clé privée n'est pas acceptée (débogage des clients OpenSSH)

Par défaut, la plupart des informations sont masquées par l'utilisateur. Vous pouvez utiliser les -v pour obtenir un journal détaillé de la tentative de connexion, qui identifiera généralement le problème en montrant pourquoi le comportement est différent de celui attendu.

Supposons que vous vous connectiez au serveur example.com utilisant ssh (ou un autre client OpenSSH comme sftp ou scp ) et que votre clé privée ne soit pas acceptée par le serveur et que le serveur demande le mot de passe (ou refuse la connexion):

$ ssh example.com [email protected]'s password:

Essayez de lancer le ssh avec les commutateurs -vvv , qui écriront tous les messages de débogage. Ce sera beaucoup d'informations, mais après un certain temps, il est assez facile de comprendre que:

$ ssh -vvv example.com

Le problème le plus courant est que la clé ne se trouve pas à l'emplacement prévu. Vous pouvez vous attendre à des lignes similaires, se plaignant des fichiers manquants. Vérifier que votre fichier a bien été lu est un bon début:

debug1: identity file /home/username/.ssh/id_dsa type -1 debug1: key_load_public: No such file or directory debug1: identity file /home/username/.ssh/id_dsa-cert type -1

Nous pouvons continuer à la partie authentification. La clé peut être proposée, mais rejetée par le serveur, en raison d'un problème de configuration du serveur. Le journal pourrait ressembler à ceci:

debug3: preferred publickey,keyboard-interactive,password debug3: authmethod_lookup publickey debug3: remaining preferred: keyboard-interactive,password debug3: authmethod_is_enabled publickey debug1: Next authentication method: publickey debug1: Offering RSA public key: username@localhost debug3: send_pubkey_test debug3: send packet: type 50 debug2: we sent a publickey packet, wait for reply debug3: receive packet: type 51 debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password

IDENTIFICATION HÔTE À DISTANCE A CHANGÉ!

https://riptutorial.com/fr/home 10

Page 14: Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les

L'erreur commune à l'aide de ssh est de voir l'erreur comme

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the RSA key sent by the remote host is SHA256:L5ri/Xdgpuals893ej1z5F1wlg1n2YNeBf/tsABX+QQ. Please contact your system administrator. Add correct host key in /Users/username/.ssh/known_hosts to get rid of this message. Offending RSA key in /Users/username/.ssh/known_hosts:12 RSA host key for *IP address* has changed and you have requested strict checking. Host key verification failed.

Cela signifie que vous vous êtes connecté au même serveur auparavant et qu'il a été identifié à l'aide de différentes clés d'hôte. Si vous savez que vous avez modifié les clés du serveur, réinstallé le serveur ou l'administrateur du serveur a annoncé des modifications, il est généralement possible de supprimer l'ancienne clé et de laisser le ssh en stocker de nouvelles.

L'ancienne clé peut être supprimée de manière transparente à l'aide de ssh-keygen :

ssh-keygen -R *IP address*

Et la prochaine connexion devrait vous demander de vérifier la nouvelle empreinte digitale:

ssh192.168.0.128 The authenticity of host '192.168.0.128 (192.168.0.128)' can't be established. ECDSA key fingerprint is SHA256:L5ri/Xdgpuals893ej1z5F1wlg1n2YNeBf/tsABX+QQ. Are you sure you want to continue connecting (yes/no)?

Si vous n'êtes pas au courant de ce qui précède, le mieux est de contacter votre administrateur de serveur pour vous assurer que tout va bien. Dans le cas contraire, l'attaquant potentiel pourrait obtenir à la fois vos informations d'authentification et toutes les données transférées!

Connexion rejetée

Une erreur "Connexion refusée" se produit si votre client envoie une demande de connexion à un hôte de serveur distant et que l'hôte distant répond qu'il refuse d'accepter la demande. L'erreur "Connexion refusée" signifie essentiellement que l'ordinateur n'accepte pas les connexions à l'adresse IP et au port demandés.

"Connexion refusée" peut être provoquée par un pare-feu qui bloque les demandes de connexion. Un pare-feu configuré pour bloquer les connexions à un point de terminaison particulier peut être configuré pour supprimer les demandes de connexion - auquel cas le client ne recevra jamais de réponse et finira par expirer. Ou le pare-feu peut répondre aux demandes de connexion de connexion avec une réponse de refus.

Mis à part les pare-feu, dans le cas de SSH, la "connexion refusée" a quelques causes possibles:

https://riptutorial.com/fr/home 11

Page 15: Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les

Vous pouvez utiliser le mauvais numéro de port pour vous connecter. Le numéro de port standard pour SSH est 22, mais certaines personnes exécutent le service ssh sur un autre port pour dissuader les tentatives d'accès non autorisées.

Vous pourriez essayer de vous connecter au mauvais ordinateur. Vous avez peut-être mal saisi le nom d'hôte ou l'adresse IP. Ou l'ordinateur peut utiliser une adresse attribuée dynamiquement qui a changé.

Le processus du serveur ssh n'est peut-être pas en cours d'exécution:

Il n'a peut-être pas encore démarré si le système est en cours de démarrage.○

Il a peut-être été désactivé par exemple lorsque le système est en mode mono-utilisateur.

Il a peut-être été mal configuré, ce qui l'a empêché de démarrer.○

L'ordinateur n'a peut-être pas de serveur SSH configuré. Les systèmes MS Windows n'incluent généralement pas de serveur SSH. Sur certains systèmes Linux, le serveur SSH peut être un composant facultatif. OS X inclut un serveur SSH, mais il est désactivé par défaut.

Le processus du serveur SSH n'écoute peut-être pas les connexions sur l'interface IP spécifique à laquelle vous essayez de vous connecter. La plupart des ordinateurs ont au moins deux interfaces IP, une interface "localhost" et une ou plusieurs interfaces réseau. Chaque interface active aura une adresse IP associée. Un serveur SSH est généralement configuré pour accepter les connexions sur toute interface IP. Mais il peut être configuré pour accepter des connexions uniquement sur des interfaces particulières. Dans ce cas, l'ordinateur refusera les connexions à une adresse IP que le serveur SSH n'écoute pas, même si la demande de connexion dispose du port correct.

Le serveur peut avoir un retard de demandes de connexion au même port. Ceci est rare et inhabituel, mais si l'hôte reçoit des demandes de connexion plus rapidement qu'il ne peut être traité, l'hôte finira par rejeter les nouvelles demandes de connexion.

Notez que, les pare - feu mis à part, « refus de connexion » signifie que vous communiquez avec l'ordinateur distant - il est tout simplement pas accepter votre demande de connexion.

La connexion a expiré

Une erreur "Connexion expirée" se produit lorsque le système distant ne répond pas à la tentative du client d'ouvrir une connexion TCP / IP. Les causes les plus courantes sont les suivantes:

Un pare-feu bloque la tentative de connexion sur le port que vous utilisez:Le pare-feu peut être côté client, en bloquant les connexions sortantes, côté serveur, en bloquant les connexions entrantes ou ailleurs sur le chemin.

Le problème de base pourrait être que vous utilisez le mauvais numéro de port.○

L'hôte auquel vous essayez de vous connecter peut être hors ligne.•Une partie du réseau entre le client et le serveur peut être interrompue ou interrompue.•Il pourrait y avoir un problème de routage réseau.•

https://riptutorial.com/fr/home 12

Page 16: Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les

Le diagnostic de la cause racine des délais de connexion est difficile.

ssh_exchange_identification: lire: connexion réinitialisée par l'homologue

Ce message d'erreur peut être généré par le client OpenSSH ssh . Cela signifie que la connexion TCP entre le client et le serveur a été anormalement fermée par le serveur immédiatement après son acceptation. Les raisons courantes de ce message sont les suivantes:

Le processus du serveur SSH ne fonctionne pas correctement - par exemple, il a planté.•Un pare-feu, un routeur ou un autre périphérique réseau entre le client et le serveur interfère avec la connexion SSH.

Les phrases du message d'erreur indiquent précisément ce qui s'est passé:

ssh_exchange_identification: 1. Après qu'un client SSH se soit connecté à un serveur SSH, la première étape du démarrage du protocole SSH consiste pour le serveur à envoyer sa version du logiciel au client. Une erreur contenant "ssh_exchange_identification" indique que l'erreur s'est produite immédiatement après la connexion TCP, alors que le client attendait la version du logiciel du serveur.

Réinitialisation de la connexion: Une réinitialisation de la connexion signifie que la connexion TCP était "anormalement fermée". Vous pouvez l'obtenir si le processus logiciel contenant l'une des connexions TCP se bloque. Les pare-feu réseau peuvent être configurés pour utiliser les réinitialisations de connexion afin de bloquer les connexions TCP.

Par homologue signifie que la connexion TCP a été fermée de "l'autre extrémité" de la connexion. Dans ce cas, l’autre extrémité est le serveur SSH distant.

Notez que cette erreur n'indique aucun type d'échec d'authentification. Le serveur a fermé la connexion TCP immédiatement après l' avoir acceptée. Le client et le serveur n'ont encore échangé aucune donnée. Le serveur n'a pas encore envoyé de clé d'hôte au client et le client n'a pas encore essayé de s'authentifier auprès du serveur.

ssh_exchange_identification: connexion fermée par l'hôte distant

Ce message d'erreur peut être généré par le client OpenSSH ssh. Cela signifie que la connexion TCP entre le client et le serveur a été fermée par le serveur immédiatement après son acceptation. Ce message indique généralement que le serveur SSH a été configuré pour ne pas accepter les connexions du client pour une raison quelconque:

Le serveur peut être configuré pour refuser les connexions de l'adresse IP du client.•Le serveur peut être configuré avec une limite sur le nombre de connexions SSH actives.•Le client peut être connecté à quelque chose qui n'est pas un serveur SSH.•

Les phrases du message d'erreur indiquent précisément ce qui s'est passé:

ssh_exchange_identification: 1. Après qu'un client SSH se soit connecté à un serveur SSH, la première étape du démarrage du protocole SSH consiste pour le serveur à envoyer sa version du logiciel au client. Une erreur contenant "ssh_exchange_identification" indique que l'erreur s'est

https://riptutorial.com/fr/home 13

Page 17: Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les

produite immédiatement après la connexion TCP, alors que le client attendait la version du logiciel du serveur.

Connexion fermée: Cela signifie que la connexion TCP a été fermée de manière normale. Cela indique que le serveur SSH a délibérément fermé la connexion. Cela contraste avec "Réinitialisation de la connexion", ce qui pourrait indiquer que le serveur SSH est tombé en panne ou a mal fonctionné.

par hôte distant signifie que la connexion TCP a été fermée de "l'autre extrémité" de la connexion. Dans ce cas, l’autre extrémité est le serveur SSH distant.

Notez que cette erreur n'indique aucun type d'échec d'authentification. Le serveur a fermé la connexion TCP immédiatement après l' avoir acceptée. Le client et le serveur n'ont encore échangé aucune donnée. Le serveur n'a pas encore envoyé de clé d'hôte au client et le client n'a pas encore essayé de s'authentifier auprès du serveur.

Lire Débogage des problèmes ssh en ligne: https://riptutorial.com/fr/ssh/topic/2926/debogage-des-problemes-ssh

https://riptutorial.com/fr/home 14

Page 18: Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les

Chapitre 4: Gestion des fichiers distants via ssh

Introduction

cette rubrique doit décrire différentes manières d'utiliser ssh comme moyen sécurisé de gérer des fichiers sur des machines distantes

Examples

Montage du répertoire distant via ssh

Vous pouvez monter un répertoire distant via ssh en utilisant sshfs. Sshfs ne vient pas par défaut sur Ubuntu, vous devez donc d'abord l'installer en utilisant sudo apt-get install sshfs . Vous pouvez ensuite monter le répertoire distant sur votre machine locale comme ceci

sshfs [email protected]:/remotedir /localdir

Notez que le localdir doit être présent avant d'essayer de monter le remotedir. Si le répertoire local n'est pas vide, sshfs se plaindra et abandonnera. Vous pouvez le forcer à monter dans le répertoire non vide en utilisant une option non vide comme celle-ci

sshfs -o nonempty [email protected]:/remotedir /localdir

Une fois que vous avez démonté le localdir, les fichiers locaux seront à nouveau visibles.

Déplacement de fichiers entre serveurs via ssh

Une des façons de déplacer des fichiers entre serveurs consiste à utiliser la commande scp . La commande de copie sécurisée utilise ssh pour transférer des données. L’exemple simple de copie d’un fichier du serveur local vers le serveur distant est

scp /localdir/localfile [email protected]:/remotedir/remotefile

De même, copier un fichier d’un serveur distant vers un serveur local serait

scp [email protected]:/remotedir/remotefile /localdir/localfile

Lire Gestion des fichiers distants via ssh en ligne: https://riptutorial.com/fr/ssh/topic/9693/gestion-des-fichiers-distants-via-ssh

https://riptutorial.com/fr/home 15

Page 19: Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les

Chapitre 5: Travailler avec des clés ssh

Examples

Convertir PPK (clé PuTTY) au format OpenSSH

Vous pourriez recevoir de votre clé privée pair au format PPK, qui semble ne pas fonctionner dans OpenSSH (ligne de commande ssh ). Le client demandera la phrase secrète à cause du bogue OpenSSH .

$ ssh -i mykey.ppk example.com Enter passphrase for mykey.ppk:

Vous devez convertir la clé au format OpenSSH à l'aide de PuTTYgen (version de ligne de commande):

puttygen mykey.ppk -o mykey.key -O private-openssh

Ou en version GUI:

Ouvrir PuttyGen•Cliquez sur Charger•Chargez votre clé privée•Aller aux conversions -> Exporter OpenSSH et exporter votre clé privée•Copiez votre clé privée dans ~/.ssh/id_rsa•

Source: réponse SO, réponse Unix SE

Lire Travailler avec des clés ssh en ligne: https://riptutorial.com/fr/ssh/topic/7861/travailler-avec-des-cles-ssh

https://riptutorial.com/fr/home 16

Page 20: Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les

Chapitre 6: Tuer une session SSH sans réponse

Introduction

Parfois, votre session SSH ne répond plus. Vous pouvez facilement sortir de cette session en utilisant l'astuce suivante.

Examples

Tuer une session SSH en utilisant le caractère d'échappement

Par défaut, le caractère d'échappement est ~ .

Allez-y et tapez ~. dans votre session SSH ouverte.

Après avoir appuyé sur Entrer, votre session se terminera immédiatement.

Allez-y et essayez-le dans n'importe quelle session, cela fonctionne indépendamment de la réactivité de votre session.

Lire Tuer une session SSH sans réponse en ligne: https://riptutorial.com/fr/ssh/topic/8797/tuer-une-session-ssh-sans-reponse

https://riptutorial.com/fr/home 17

Page 21: Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les

Chapitre 7: Tunnels inverses

Examples

OpenSSH

La création d'un tunnel ssh inversé ne prend qu'un seul commutateur -R vers la commande d'origine.

Ligne de commande

Supposons que vous vous connectiez à example.com tant guest utilisateur à l'aide d'une commande ssh [email protected] . Ouvrir le tunnel inverse peut ressembler à ceci:

ssh -R 2222:localhost:22 [email protected]

Il ouvrira un port 2222 sur le serveur distant (interface de bouclage uniquement) et chaque connexion à ce port sera transmise au serveur ssh de votre ordinateur local (port 22 ).

Cela suppose également que vous avez autorisé les options AllowTcpForwarding yes et PermitOpen any dans votre sshd_config sur votre serveur. Sinon, il échouera avec une erreur

open failed: administratively prohibited: open failed

Si vous souhaitez autoriser le port transféré à être accessible sur d'autres adresses réseau (que localhost ), vous devez également autoriser GatewayPorts yes et utiliser une adresse IP ou un nom d'hôte ou une adresse IP:

ssh -R 2222:example.com:22 [email protected]

Configuration

De plus, vous pouvez spécifier le transfert de votre port distant dans votre ~/.ssh/config pour éviter de taper la même ligne chaque fois que vous vous connectez. Une bonne pratique pourrait être de configurer également un alias pour l'hôte, qui aura ce transfert, si vous vous connectez fréquemment à votre hôte et que vous ne voulez pas lancer le transfert de port à chaque fois:

Host example.com-R Hostname example.com User guest RemoteForward 2222 localhost:22

puis créez un transfert de port à distance en utilisant simplement ssh example.com-R

https://riptutorial.com/fr/home 18

Page 22: Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les

Courir en arrière-plan

La redirection de port peut être simplement exécutée en arrière-plan à l'aide des commutateurs -N (ne pas exécuter la commande à distance, uniquement le transfert), -f (aller en arrière-plan après authentification), -T (désactiver l'allocation TTY distante). Mettre tous ensemble:

ssh -NTfR 2222:localhost:22 [email protected]

Lire Tunnels inverses en ligne: https://riptutorial.com/fr/ssh/topic/5689/tunnels-inverses

https://riptutorial.com/fr/home 19

Page 23: Secure Shell - RIP TutorialSSH (Secure Shell) est un protocole cryptographique pour la communication point à point sur le réseau non sécurisé (Internet). Il rend obsolètes les

Crédits

S. No

Chapitres Contributeurs

1Démarrer avec Secure Shell

Community, dreftymac, Harikrishnan, Jakuje, jalanb, Joe Block, jPlatte, Lernkurve, Marek Skiba, mszymborski, Nasreddine, Osaka, Piotr Dobrysiak, ygram

2Commandes à distance

deepmax, Jakuje

3Débogage des problèmes ssh

Jakuje, Joe Block, Kenster, Martin Prikryl, Stephen C

4Gestion des fichiers distants via ssh

user

5Travailler avec des clés ssh

Jakuje

6Tuer une session SSH sans réponse

leifg

7 Tunnels inverses Jakuje

https://riptutorial.com/fr/home 20