GNU/Linux >> Tutoriels Linux >  >> Linux

Qu'est-ce que la commande SSH et comment utiliser SSH pour se connecter à un serveur distant

Il peut arriver que la connexion à distance à un ordinateur soit nécessaire. Vous pouvez avoir besoin d'accéder à un fichier, aider un ami à résoudre un problème ou même transférer des fichiers entre ordinateurs. Quoi qu'il en soit, Secure Shell (SSH) vous permet de vous connecter à un autre ordinateur exécutant Linux (ou même un autre système Unix comme BSD ou Solaris) via une connexion cryptée. Pour qu'un hôte distant reçoive des connexions SSH, il doit avoir le démon en cours d'exécution (sshd) et vous devez lui faire accepter les paquets entrants sur le port 22 si un pare-feu est utilisé.

Fonctionnement de SSH

L'idée derrière SSH est de permettre à un utilisateur d'interagir à distance avec un ordinateur via le terminal via une connexion cryptée. Cela signifie que les données transmises (comme le nom d'utilisateur et le mot de passe utilisés pour se connecter) sont sécurisées, empêchant ainsi un attaquant de collecter facilement des données sensibles à l'aide d'un renifleur de paquets, ce qui serait le cas si vous utilisiez Remote Shell (RSH) sur Internet car vos informations de connexion seraient envoyées au serveur sous forme de texte brut (pas de cryptage).

Configurer SSH

Si votre ordinateur ne peut pas recevoir de connexions SSH, vous devrez installer le protocole SSH s'il n'est pas déjà installé. Les systèmes comme Ubuntu doivent configurer le démon SSH (sshd) pour qu'il s'exécute au démarrage. Si un pare-feu est présent, vous devrez peut-être également configurer les paramètres pour autoriser les connexions entrantes au port 22 ou à tout autre port que vous avez choisi SSH pour accepter les connexions entrantes.

$ sudo apt install ssh   

Une démonstration simple

Comme pour beaucoup de choses avec Linux, le processus de connexion à un shell distant est simple. Ouvrons un terminal et connectons-nous à une machine sous le nom d'utilisateur "unix_allsort":

$ ssh [email protected] 

Si c'est la première fois que vous vous connectez à un hôte particulier en utilisant votre ordinateur sous l'utilisateur actuel, il vous demandera si vous souhaitez accepter cet hôte dans la liste des connexions connues. Si ce n'est pas le cas et que vous recevez ce message, il pourrait s'agir d'un hôte complètement différent, ce qui pourrait indiquer que quelqu'un se fait passer pour cet ordinateur !

Une fois que vous vous êtes authentifié, vous devriez pouvoir naviguer dans le système comme vous le feriez si vous étiez devant l'ordinateur en personne.

Vous pouvez même utiliser SSH sur cet ordinateur pour accéder à un autre ordinateur distant :

[email protected]:~$ ssh [email protected]   

Exécuter des programmes sur des hôtes distants OU SSH Exécuter une commande à distance

Il existe une option pour exécuter une application sur un hôte distant une fois connecté à l'aide de SSH. Un exemple serait de lancer un éditeur pour éditer un fichier particulier sur ledit hôte.

$ ssh -t [email protected] vim ~/Documents/list.txt

Vous seriez capable d'utiliser vim comme vous le feriez si vous utilisiez cet ordinateur en personne. L'option '-t' est requise chaque fois que vous souhaitez lancer des programmes comme vim à partir d'un hôte distant. Ce paramètre est utilisé pour forcer l'allocation de pseudo-terminal. La page de manuel indique que les programmes basés sur l'écran, comme vim, doivent être lancés avec cette option pour cette raison. Si cela manque, certaines applications de terminal peuvent ne pas fonctionner correctement.

Applications graphiques

SSH fournit également un moyen de lancer un programme d'interface graphique X11, comme Firefox, par opposition à un programme texte uniquement.

$ ssh -X [email protected] 

Firefox Le paramètre "-X" indique simplement à l'hôte distant d'autoriser l'ordinateur qui se connecte à lancer de nombreuses applications X lorsqu'il lui est demandé de le faire, via le shell ou autrement. De nombreux programmes peuvent être exécutés de cette façon, des navigateurs Web, des éditeurs, même certains programmes Windows via Wine. J'ai constaté que les émulateurs de terminaux sur X refusent de s'exécuter. Reportez-vous également à la page de manuel pour plus d'informations sur le transfert X11.

Remarque : Vous pouvez rencontrer cette erreur lors de la connexion à l'aide de SSH avec le transfert X11 activé :/usr/bin/xauth :délai d'attente dans le fichier d'autorité de verrouillage /home/your_home/.Xauthority Si cela se produit, le problème est qu'un fichier de verrouillage pour 'xauth' est déjà existe. La solution consiste à supprimer le fichier de verrouillage. Il peut y en avoir plusieurs, alors exécutez cette commande pour les supprimer (de force si nécessaire) :

$ rm -rf ~/.Xauthority-* 

Déconnectez-vous de la session SSH et reconnectez-vous. Vous devriez alors pouvoir exécuter à nouveau les applications X.

Configurer SSH sans mot de passe

Il est possible de se connecter à distance à un ordinateur sans avoir à entrer ses identifiants. Cela nécessite que les ordinateurs soient configurés pour permettre à votre ordinateur de se connecter de cette manière, réalisable grâce à l'utilisation de paires de clés générées à l'aide de 'ssh-keygen '.

Tout d'abord, la clé doit être générée. Ici, il est acceptable de s'en tenir aux valeurs par défaut. Étant donné que le but de cet exercice est de ne pas saisir de mot de passe ou de phrase secrète dans le terminal à chaque fois qu'une session est lancée, nous souhaitons n'avoir aucune phrase secrète pour cette clé.

Une fois que tout a été créé, le ky présent dans le fichier d'identité doit être installé sur l'ordinateur distant :

$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

Si ces étapes ont été effectuées correctement, vous devriez pouvoir vous connecter via SSH au PC sans être invité à entrer un mot de passe.

Outils reposant sur SSH

Copie sécurisée

SCP (Secure Copy) permet aux utilisateurs de copier des fichiers vers ou depuis un hôte distant via une connexion sécurisée. La syntaxe est très similaire à la commande 'cp' où vous spécifiez les fichiers ou dossiers et leur destination. Voici un exemple :

$ scp ~/Documents/shopping.odt [email protected]:~/Documents 

Nous venons de copier un fichier sur Internet via une connexion sécurisée à un ordinateur distant. La même chose peut être faite pour les dossiers :

$ scp -r [email protected]:~/Documents/Reports ~/Documents 

Cela copie un dossier (d'où le '-r' pour récursif) et son contenu d'un PC distant vers votre ordinateur.

Protocole de transfert de fichiers SSH (SFTP)

SFTP permet un accès et une transmission sécurisés des fichiers à l'aide du protocole de transfert de fichiers via SSH.

Conclusion

Avec SSH, vous pouvez facilement vous connecter à un autre ordinateur depuis presque n'importe où dans des circonstances normales. Le transfert X11 peut être activé pour exécuter des applications GUI à partir de la machine distante, et des programmes peuvent être lancés au lieu de lancer un shell. La page de manuel pour SSH fournit beaucoup d'informations utiles, alors jetez-y un coup d'œil.


Linux
  1. Qu'est-ce qu'une commande Chown sous Linux et comment l'utiliser

  2. Qu'est-ce qu'une commande cURL et comment l'utiliser ?

  3. Comment utiliser la commande Linux Rsync (synchronisation à distance)

  4. Comment se connecter au serveur ssh avec plink et cmd et clé publique

  5. Comment installer et utiliser l'outil de ligne de commande Mosh Linux

Comment utiliser SSH pour se connecter à un serveur distant

Comment installer et utiliser la commande fd sous Linux

Qu'est-ce qu'EasyApache et comment l'utiliser ?

Comment installer et utiliser le serveur Xrdp (bureau à distance) sur le système Linux

Comment générer et utiliser une clé SSH avec PuTTY

Comment utiliser SSH pour se connecter à un serveur distant sous Linux ou Windows