Stations de travail en ligne OnWorks Linux et Windows

Logo

Hébergement gratuit en ligne pour les postes de travail

<Précédent | Table des matières | Suivant>

ssh

Pour résoudre ce problème, un nouveau protocole appelé SSH (Secure Shell) a été développé. SSH résout les deux problèmes de base de la communication sécurisée avec un hôte distant. Premièrement, il authentifie que l'hôte distant est bien celui qu'il prétend être (évitant ainsi les attaques dites « de l'homme du milieu »), et deuxièmement, il crypte toutes les communications entre les hôtes locaux et distants.

SSH se compose de deux parties. Un serveur SSH s'exécute sur l'hôte distant, à l'écoute des connexions entrantes sur le port 22, tandis qu'un client SSH est utilisé sur le système local pour communiquer avec le serveur distant.

La plupart des distributions Linux proposent une implémentation de SSH appelée OpenSSH du projet OpenBSD. Certaines distributions incluent à la fois les packages client et serveur par défaut (par exemple, Red Hat), tandis que d'autres (comme Ubuntu) ne fournissent que le client. À


permettre à un système de recevoir des connexions à distance, il doit avoir le OpenSSH-serveur package installé, configuré et en cours d'exécution, et (si le système est en cours d'exécution ou est derrière un pare-feu), il doit autoriser les connexions réseau entrantes sur le port TCP 22.


image

Conseil : Si vous n'avez pas de système distant auquel vous connecter mais que vous souhaitez essayer ces exemples, assurez-vous que le Serveur OpenSSH package est installé sur votre système et utilisez localhost comme nom de l'hôte distant. De cette façon, votre machine créera des connexions réseau avec elle-même.


image

Le programme client SSH utilisé pour se connecter aux serveurs SSH distants est appelé, de manière assez appropriée, ssh. Pour se connecter à un hôte distant nommé système-distant, nous utiliserions le ssh programme client comme ceci :



[moi@linuxbox ~]$ ssh système distant

L'authenticité de l'hôte 'remote-sys (192.168.1.4)' ne peut pas être établie.

RSA key fingerprint is 41:ed:7a:df:23:19:bf:3c:a5:17:bc:61:b3:7f:d9:bb.

Êtes-vous sûr de vouloir continuer à vous connecter (oui / non)?

[moi@linuxbox ~]$ ssh système distant

L'authenticité de l'hôte 'remote-sys (192.168.1.4)' ne peut pas être établie.

RSA key fingerprint is 41:ed:7a:df:23:19:bf:3c:a5:17:bc:61:b3:7f:d9:bb.

Êtes-vous sûr de vouloir continuer à vous connecter (oui / non)?


Lors de la première tentative de connexion, un message s'affiche indiquant que l'authenticité de l'hôte distant ne peut pas être établie. C'est parce que le programme client n'a jamais vu cet hôte distant auparavant. Pour accepter les informations d'identification de l'hôte distant, entrez « oui » lorsque vous y êtes invité. Une fois la connexion établie, l'utilisateur est invité à saisir son mot de passe :



Avertissement : Ajout permanent de « remote-sys,192.168.1.4 » (RSA) à la liste des hôtes connus.

Mot de passe de me@remote-sys :

Avertissement : Ajout permanent de « remote-sys,192.168.1.4 » (RSA) à la liste des hôtes connus.

Mot de passe de me@remote-sys :


Une fois le mot de passe entré avec succès, nous recevons l'invite du shell du système distant :



Dernière connexion : sam 30 août 13:00:48 2016 [me@remote-sys ~]$

Dernière connexion : sam 30 août 13:00:48 2016 [me@remote-sys ~]$


La session shell distante se poursuit jusqu'à ce que l'utilisateur entre dans le sortie à l'invite du shell distant, fermant ainsi la connexion distante. À ce stade, la session shell locale


reprend et l'invite du shell local réapparaît.

Il est également possible de se connecter à des systèmes distants en utilisant un nom d'utilisateur différent. Par exemple, si l'utilisateur local « moi » avait un compte nommé « bob » sur un système distant, l'utilisateur me pourrait se connecter au compte grain sur le système distant comme suit :


[moi@linuxbox ~]$ ssh bob@distant-sys

Mot de passe de bob@remote-sys :

Dernière connexion : sam. 30 août 13:03:21 2016 [bob@remote-sys ~]$

[moi@linuxbox ~]$ ssh bob@distant-sys

Mot de passe de bob@remote-sys :

Dernière connexion : sam. 30 août 13:03:21 2016 [bob@remote-sys ~]$


Comme indiqué précédemment, ssh vérifie l'authenticité de l'hôte distant. Si l'hôte distant ne parvient pas à s'authentifier, le message suivant s'affiche :



[moi@linuxbox ~]$ ssh système distant

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@

@ AVERTISSEMENT : L'IDENTIFICATION DE L'HTE À DISTANCE A CHANGÉ ! @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ IL EST POSSIBLE QUE QUELQU'UN FAIT QUELQUE CHOSE DE MAL !

Quelqu'un pourrait vous espionner en ce moment (attaque de l'homme du milieu) !

Il est également possible que la clé d'hôte RSA vienne d'être modifiée. L'empreinte de la clé RSA envoyée par l'hôte distant est 41:ed:7a:df:23:19:bf:3c:a5:17:bc:61:b3:7f:d9:bb.

S'il vous plaît contactez votre administrateur système.

Ajoutez la clé d'hôte correcte dans /home/me/.ssh/known_hosts pour vous débarrasser de ce message.

Clé incriminée dans /home/me/.ssh/known_hosts:1

La clé d'hôte RSA pour remote-sys a changé et vous avez demandé une vérification stricte.

Échec de la vérification de la clé d'hôte.

[moi@linuxbox ~]$ ssh système distant

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@

@ AVERTISSEMENT : L'IDENTIFICATION DE L'HTE À DISTANCE A CHANGÉ ! @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ IL EST POSSIBLE QUE QUELQU'UN FAIT QUELQUE CHOSE DE MAL !

Quelqu'un pourrait vous espionner en ce moment (attaque de l'homme du milieu) !

Il est également possible que la clé d'hôte RSA vienne d'être modifiée. L'empreinte de la clé RSA envoyée par l'hôte distant est 41:ed:7a:df:23:19:bf:3c:a5:17:bc:61:b3:7f:d9:bb.

S'il vous plaît contactez votre administrateur système.

Ajoutez la clé d'hôte correcte dans /home/me/.ssh/known_hosts pour vous débarrasser de ce message.

Clé incriminée dans /home/me/.ssh/known_hosts:1

La clé d'hôte RSA pour remote-sys a changé et vous avez demandé une vérification stricte.

Échec de la vérification de la clé d'hôte.


Ce message est provoqué par l'une des deux situations possibles. Premièrement, un attaquant peut tenter une attaque « de l'homme du milieu ». C'est rare, car tout le monde sait que ssh en alerte l'utilisateur. Le coupable le plus probable est que le système distant a été modifié d'une manière ou d'une autre ; par exemple, son système d'exploitation ou son serveur SSH a été réinstallé. Cependant, dans l'intérêt de la sécurité et de la sûreté, la première possibilité ne doit pas être écartée d'emblée. Vérifiez toujours auprès de l'administrateur du système distant lorsque ce message s'affiche.

Une fois qu'il a été déterminé que le message est dû à une cause bénigne, vous pouvez corriger le problème du côté client en toute sécurité. Cela se fait à l'aide d'un éditeur de texte (entrain peut-être) pour retirer la clé obsolète du ~/.ssh/known_hosts déposer. Dans l'exemple de message ci-dessus, nous voyons ceci :


Clé incriminée dans /home/me/.ssh/known_hosts:1

Clé incriminée dans /home/me/.ssh/known_hosts:1


Cela signifie que la ligne un des hôtes_connus fichier contient la clé incriminée. Supprimez cette ligne du fichier et le ssh Le programme pourra accepter de nouvelles informations d'authentification du système distant.

En plus d'ouvrir une session shell sur un système distant, ssh nous permet également d'exécuter une seule commande sur un système distant. Par exemple, pour exécuter le faim commande sur un hôte distant nommé système-distant et afficher les résultats sur le système local :


[moi@linuxbox ~]$ ssh remote-sys gratuit

mot de passe de me@twin4 :

total utilisé gratuit

commun

tampons

cache

[moi@linuxbox ~]$ ssh remote-sys gratuit

mot de passe de me@twin4 :

total utilisé gratuit


Mémoire :

+775536 (507184)268352

0

110068

154596

Mémoire :


-/+ tampons/cache :

Swap:

+242520 (533016)XNUMX XNUMX

+0 (1572856)XNUMX XNUMX

-/+ tampons/cache :

Swap:


[moi@linuxbox ~]$

[moi@linuxbox ~]$


image

1572856

1572856

Il est possible d'utiliser cette technique de manière plus intéressante, comme cet exemple dans lequel nous effectuons un ls sur le système distant et redirigeons la sortie vers un fichier sur le système local :



[moi@linuxbox ~]$ ssh remote-sys 'ls *' > dirlist.txt

Mot de passe de me@twin4 : [me@linuxbox ~]$

[moi@linuxbox ~]$ ssh remote-sys 'ls *' > dirlist.txt

Mot de passe de me@twin4 : [me@linuxbox ~]$


Notez l'utilisation des guillemets simples dans la commande ci-dessus. Ceci est fait parce que nous ne voulons pas que l'expansion du nom de chemin soit effectuée sur la machine locale ; nous voulons plutôt qu'il soit exécuté sur le système distant. De même, si nous avions voulu que la sortie soit redirigée vers un fichier sur la machine distante, nous aurions pu placer l'opérateur de redirection et le nom du fichier entre les guillemets simples :



[moi@linuxbox ~]$ ssh remote-sys 'ls * > dirlist.txt'

[moi@linuxbox ~]$ ssh remote-sys 'ls * > dirlist.txt'


image

Tunneling avec SSH

Une partie de ce qui se passe lorsque vous établissez une connexion avec un hôte distant via SSH est qu'un tunnel crypté est créé entre les systèmes local et distant. Normalement, ce tunnel est utilisé pour permettre aux commandes tapées sur le système local d'être transmises en toute sécurité au système distant, et pour que les résultats soient retransmis en toute sécurité. En plus de cette fonction de base, le protocole SSH permet d'envoyer la plupart des types de trafic réseau via le tunnel crypté, créant une sorte de VPN (Virtual Private Network) entre les systèmes locaux et distants.

L'utilisation la plus courante de cette fonctionnalité est peut-être de permettre la transmission du trafic du système X Window. Sur un système exécutant un serveur X (c'est-à-dire une machine affichant une interface graphique), il est possible de lancer et d'exécuter un programme client X (une application graphique) sur un système distant et de faire apparaître son affichage sur le système local. C'est facile à faire; voici un exemple : disons que nous sommes assis sur un système Linux appelé linuxbox qui exécute un serveur X, et nous voulons exécuter le xcharger programme sur un système distant nommé système-distant et voir la sortie graphique du programme sur notre système local. On pourrait faire ça :

[moi@linuxbox ~]$ ssh -X système-distant

Mot de passe de me@remote-sys :

Dernière connexion : lun sept. 08 13:23:11 2016 [me@remote-sys ~]$ xcharger

Après les xcharger commande est exécutée sur le système distant, sa fenêtre apparaît sur le système local. Sur certains systèmes, vous devrez peut-être utiliser l'option "-Y" plutôt que l'option "-X" pour ce faire.


Meilleur système d'exploitation Cloud Computing chez OnWorks :