GNU/Linux >> Tutoriels Linux >  >> Linux

Premiers pas avec SSH sous Linux

Grâce au monde connecté dans lequel nous vivons, vous n'avez plus besoin d'avoir un accès physique à votre serveur. Votre serveur peut se trouver n'importe où dans le monde et vous pouvez vous y connecter depuis votre machine locale.

Il existe de nombreux protocoles et outils développés à cet effet. Ceux-ci incluent telnet et ssh . Telnet n'est pas préféré pour des raisons de sécurité. D'autre part, ssh est le moyen populaire de se connecter en toute sécurité à des systèmes distants.

Dans cet article, je couvrirai certaines commandes et outils utiles qu'un utilisateur Linux doit connaître pour utiliser un système distant et ses ressources via ssh.

Notez que la plupart des commandes que vous exécutez sur votre système Linux local personnel doivent également être disponibles sur le système distant (telles que ls, cat, commande cd, etc.). Mais leur exécution dépend des autorisations attribuées à un utilisateur distant, comme avec n'importe quel système Linux/UNIX.

Qu'est-ce que SSH ?

Le ssh ou Secure Shell est un protocole réseau permettant d'exploiter des services de mise en réseau en toute sécurité sur un réseau. Il utilise des normes de cryptage pour se connecter et se connecter en toute sécurité au système distant.

Il stocke une clé publique dans le système distant et une clé privée dans le système client. Ces clés sont produites par paire mathématiquement. Lorsque les deux sont appliqués à une fonction bi-variable, il en résultera une valeur qui sera utilisée pour vérifier si la paire est valide ou invalide. C'est l'explication la plus simple possible. Pour en savoir plus, veuillez consulter cette page.

Exemples d'utilisation de SSH

Commençons par configurer ssh et des cas d'utilisation vraiment sympas.

Générer la clé ssh

Des sites Web tels que GitHub et Heroku demandent votre ssh clé publique afin que vous puissiez pousser/déployer du code sans entrer de mot de passe et vous n'avez pas une telle paire de clés ? Ne vous inquiétez pas. Vous pouvez générer une telle paire de clés SSH avec cette  commande :

ssh-keygen

Il vous demandera un emplacement de clé (où la clé sera enregistrée) et une phrase de passe (c'est-à-dire un mot de passe). La phrase secrète est facultative.

Par défaut, les clés ssh sont stockées dans le répertoire .ssh sous votre répertoire personnel.

Si l'emplacement de la clé est DIR_PATH/keypairforssh , il y aura deux fichiers

  1. DIR_PATH/paire de clés pour ssh
  2. DIR_PATH/paire de cléspourssh.pub

1 est le fichier de clé privée que vous ne devez partager avec personne
2 est le fichier de clé publique qui peut être partagé avec des systèmes distants (au moyen d'autres communications de confiance telles que le courrier, le transfert physique et d'autres outils de communication sécurisés) et des services tels que Github, Heroku pour les cas d'utilisation respectifs. Assurez-vous de bien vérifier le service pour lequel vous vous connectez.

Ajouter une clé privée à l'agent de clé

Lorsque la paire de clés est créée, elle existe simplement sous la forme d'un ensemble de deux fichiers. Pour se connecter au système distant, il doit utiliser la clé privée. Il faut donc informer que ce DIR_PATH/keypairforssh est la clé privée.

Ceci est fait par

ssh-add keylocation

Dans notre cas, c'est

ssh-add DIR_PATH/keypairforssh

Se connecter à l'hôte distant via SSH

Si la clé privée et la clé publique se trouvent aux bons endroits, vous pouvez vous connecter au système de cette manière.

ssh [username]@hostname

Où le nom d'utilisateur doit être un utilisateur valide sur le système distant et le nom d'hôte est reconnaissable par DNS ou une adresse IP afin que ssh puisse contacter le système distant et demander une connexion.

Par exemple, pour se connecter au système nommé "linuxhandbook ” avec le nom d'utilisateur “seeni ”, utilisez :

ssh [email protected] 

Comme expliqué précédemment, la commande ci-dessus utilise la clé privée sur le système local et la clé publique sur le système distant et vérifie qu'il s'agit de paires valides. Il permet la connexion si et seulement si la paire de clés est valide et génère un shell (le type dépend de la configuration de l'utilisateur sur le système distant) pour votre usage. Vous pouvez utiliser le système distant comme vous utilisez le système local.

Supposons que la clé privée ne soit pas ajoutée à l'agent de clé, vous pouvez alors vous connecter en ssh comme ci-dessous.

ssh -i /path/to/private/key/file [email protected]

Cette vérification des paires de clés est généralement effectuée une fois. Ssh ajoute l'hôte distant à la liste des hôtes autorisés pour une utilisation future.

Copier des fichiers entre des systèmes client et distants

La commande scp est un outil construit au-dessus de ssh. Il permet aux utilisateurs de copier des fichiers et des répertoires de la télécommande vers le client et vice versa.

Étant donné que la commande scp utilise ssh, elle a besoin de la même exigence que ssh. Cela signifie que la clé publique doit se trouver sur le système distant et la clé privée sur le système local.

scp DIR_PATH_1 DIR_PATH_2

DIR_PATH_1/DIR_PATH_2 sont tous les deux des chemins qui sont des chemins de système de fichiers distants ou locaux. Par exemple, pour transférer ~/Documents/documentForLinux.txt à 'linuxHandbook 's /home/seeni/Documents répertoire

scp ~/Documents/documentForLinux.txt [email protected]:~/Documents

Pour copier le même fichier en sens inverse,

scp  [email protected]:~/Documents/documentForLinux.txt ~/Documents

Montage d'un système de fichiers ou d'un répertoire distant

Pour monter des répertoires système distants sur le client, sshfs est l'outil
développé dans ce but précis.

sshfs [email protected]:/path/to/remote/folder /path/to/local/mount/point

La commande ci-dessus est totalement intuitive. Ici, "nom" est le nom d'utilisateur accepté sur le système distant et le serveur est le "nom d'hôte" distant.

Dans certains systèmes, sshfs peut ne pas être disponible, installez-le si vous en avez besoin.

Astuce :La commande nohup vous permet de continuer à exécuter des commandes même après avoir déconnecté votre connexion SSH.

Conclusion

Félicitations, vous êtes arrivé au bout. J'espère que cet article a couvert toutes les commandes et outils de base liés à ssh. Ces outils sont juste suffisants pour débuter avec l'informatique à distance avec ssh.

Dans un article connexe, vous pouvez en apprendre davantage sur tmate. C'est un outil qui vous permet de partager votre session de terminal via SSH.

J'espère que vous trouverez cet article utile. Si vous avez des suggestions, n'hésitez pas à les déposer dans la section des commentaires ci-dessous.


Linux
  1. Premiers pas avec les pare-feux Linux

  2. Premiers pas avec la commande Linux tac

  3. Premiers pas avec PiFlash :démarrer votre Raspberry Pi sous Linux

  4. Premiers pas avec la commande Linux cat

  5. Premiers pas avec PostgreSQL sous Linux

Premiers pas avec GIT sous Linux

Premiers pas avec le système d'exploitation Linux

Tutoriel Vagrant - Premiers pas avec Vagrant sous Linux

Premiers pas avec Docker Compose sous Linux

Premiers pas avec VirtualBox sous Linux - Partie 1

Premiers pas avec Flutter sur Linux Desktop