Comment copier à distance des fichiers sur SSH sans entrer votre mot de passe
SSH est une bouée de sauvetage lorsque vous devez gérer un ordinateur à distance, mais saviez-vous que vous pouvez également télécharger et télécharger des fichiers? En utilisant les clés SSH, vous pouvez éviter de saisir des mots de passe et les utiliser pour les scripts.!
Ce processus fonctionne sous Linux et Mac OS, à condition qu'ils soient correctement configurés pour l'accès SSH. Si vous utilisez Windows, vous pouvez utiliser Cygwin pour obtenir une fonctionnalité semblable à celle de Linux. Avec un peu de peaufinage, SSH s'exécutera également..
Copier des fichiers sur SSH
La copie sécurisée est une commande très utile et très facile à utiliser. Le format de base de la commande est le suivant:
scp [options] fichier_original fichier_destination
Le plus gros kicker est de savoir comment formater la partie distante. Lorsque vous adressez un fichier distant, vous devez le faire de la manière suivante:
utilisateur @ serveur: chemin / vers / fichier
Le serveur peut être une URL ou une adresse IP. Ceci est suivi de deux points, puis du chemin d'accès au fichier ou au dossier en question. Regardons un exemple.
scp -P 40050 Desktop / url.txt [email protected]: ~ / Desktop / url.txt
Cette commande comporte l'indicateur [-P] (notez qu'il s'agit d'un P majuscule). Cela me permet de spécifier un numéro de port au lieu du 22 par défaut. Cela m'est nécessaire en raison de la configuration de mon système..
Ensuite, mon fichier d'origine est «url.txt», qui se trouve dans un répertoire appelé «Bureau». Le fichier de destination est dans “~ / Desktop / url.txt”, ce qui est identique à “/user/yatri/Desktop/url.txt”. Cette commande est exécutée par l'utilisateur “yatri” sur l'ordinateur distant “192.168.1.50”..
Que faire si vous avez besoin de faire le contraire? Vous pouvez copier des fichiers d’un serveur distant de la même manière..
Ici, j'ai copié un fichier du dossier «~ / Desktop /» de l'ordinateur distant dans le dossier «Desktop» de mon ordinateur..
Pour copier des répertoires entiers, vous devez utiliser l'indicateur [-r] (notez qu'il s'agit d'une lettre minuscule).
Vous pouvez également combiner des drapeaux. Au lieu de
scp -P -r…
Vous pouvez juste faire
scp -Pr…
La partie la plus difficile ici est que la complétion par onglet ne fonctionne pas toujours, il est donc utile d’avoir un autre terminal avec une session SSH en cours pour que vous sachiez où mettre les choses..
SSH et SCP sans mots de passe
La copie sécurisée est excellente. Vous pouvez l'insérer dans des scripts et le faire effectuer des sauvegardes sur des ordinateurs distants. Le problème est que vous ne pouvez pas toujours être là pour entrer le mot de passe. Et, soyons honnêtes, il est très pénible de mettre votre mot de passe sur un ordinateur distant auquel vous avez évidemment accès tout le temps..
Nous pouvons nous déplacer en utilisant des mots de passe en utilisant des fichiers de clés. Nous pouvons demander à l’ordinateur de générer deux fichiers de clés - un fichier public appartenant au serveur distant et un fichier privé qui se trouve sur votre ordinateur et doit être sécurisé - et sera utilisé à la place du mot de passe. Assez pratique, à droite?
Sur votre ordinateur, entrez la commande suivante:
ssh-keygen -t rsa
Cela va générer les deux clés et les mettre dans:
~ / .ssh /
avec les noms "id_rsa" pour votre clé privée et "id_rsa.pub" pour votre clé publique.
Après avoir entré la commande, il vous sera demandé où enregistrer la clé. Vous pouvez appuyer sur Entrée pour utiliser les valeurs par défaut mentionnées ci-dessus..
Ensuite, il vous sera demandé de saisir une phrase secrète. Appuyez sur Entrée pour laisser ce champ vide, puis recommencez quand il vous demande une confirmation. L'étape suivante consiste à copier le fichier de clé publique sur votre ordinateur distant. Vous pouvez utiliser scp pour cela:
La destination de votre clé publique est sur le serveur distant, dans le fichier suivant:
~ / .ssh / registered_keys2
Des clés publiques ultérieures peuvent être ajoutées à ce fichier, un peu comme le fichier ~ / .ssh / known_hosts. Cela signifie que si vous souhaitez ajouter une autre clé publique pour votre compte sur ce serveur, vous devez copier le contenu du deuxième fichier id_rsa.pub dans une nouvelle ligne du fichier allowed_keys2 existant..
Considérations de sécurité
N'est-ce pas moins sécurisé qu'un mot de passe?
Dans la pratique, pas vraiment. La clé privée générée est stockée sur l'ordinateur que vous utilisez et elle n'est jamais transférée, pas même vérifiée. Cette clé privée correspond UNIQUEMENT à cette clé publique ONE et la connexion doit être démarrée à partir de l'ordinateur disposant de la clé privée. RSA est assez sécurisé et utilise une longueur de 2048 bits par défaut.
C'est en fait assez similaire en théorie à l'utilisation de votre mot de passe. Si quelqu'un connaît votre mot de passe, votre sécurité disparaît. Si une personne possède votre fichier de clé privée, la sécurité est perdue pour tout ordinateur disposant de la clé publique correspondante, mais il doit avoir accès à votre ordinateur pour l'obtenir..
Cela peut-il être plus sécurisé?
Vous pouvez combiner un mot de passe avec des fichiers de clé. Suivez les étapes ci-dessus, mais entrez une phrase secrète forte. Maintenant, lorsque vous vous connectez via SSH ou utilisez SCP, vous aurez besoin du fichier de clé privée approprié. aussi bien que la phrase secrète appropriée.
Une fois que vous avez entré votre phrase secrète une fois, vous ne serez plus invité à la saisir avant la fermeture de votre session. Cela signifie que la première fois que vous utilisez SSH / SCP, vous devrez entrer votre mot de passe, mais toutes les actions ultérieures ne l'exigeront pas. Une fois que vous vous êtes déconnecté de votre ordinateur (et non de l'ordinateur distant) ou que vous avez fermé la fenêtre de votre terminal, vous devrez le saisir à nouveau. De cette façon, vous ne sacrifiez pas vraiment la sécurité, mais vous n'êtes pas non plus harcelé pour les mots de passe tout le temps..
Puis-je réutiliser la paire de clés publique / privée?
C'est une très mauvaise idée. Si quelqu'un trouve votre mot de passe et que vous utilisez le même mot de passe pour tous vos comptes, il a désormais accès à tous ces comptes. De même, votre fichier de clé privée est également très secret et important. (Pour plus d'informations, consultez la rubrique Comment récupérer après que votre mot de passe de messagerie soit compromis)
Il est préférable de créer de nouvelles paires de clés pour chaque ordinateur et compte que vous souhaitez associer. Ainsi, si l'une de vos clés privées est interceptée, vous ne compromettez qu'un seul compte sur un ordinateur distant..
Il est également très important de noter que toutes vos clés privées sont stockées au même endroit: dans ~ / .ssh / sur votre ordinateur, vous pouvez utiliser TrueCrypt pour créer un conteneur crypté sécurisé, puis créer des liens symboliques dans votre ~ / .ssh. / répertoire. En fonction de ce que je fais, j'utilise cette méthode super sécurisée et paranoïaque pour mettre mon esprit à l'aise.
Avez-vous utilisé SCP dans des scripts? Utilisez-vous des fichiers de clés au lieu de mots de passe? Partagez votre propre expertise avec d'autres lecteurs dans les commentaires!