6Aug

Comment copier à distance des fichiers sur SSH sans entrer votre mot de passe

SSH est un sauveur lorsque vous avez besoin de gérer à distance un ordinateur, mais saviez-vous que vous pouvez également télécharger et télécharger des fichiers, aussi? En utilisant les clés SSH, vous pouvez éviter d'entrer des mots de passe et l'utiliser pour les scripts!

Ce processus fonctionne sur 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 des fonctionnalités de type Linux, et avec un peu de peaufinage, SSH fonctionnera également.

Copie de 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_fichier fichier_destination

Le plus gros pointeur est comment formater la partie distante. Lorsque vous adressez un fichier distant, vous devez le faire de la manière suivante:

utilisateur @ serveur: chemin /to/ fichier

Le serveur peut être une URL ou une adresse IP.Ceci est suivi d'un deux-points, puis du chemin vers le fichier ou le dossier en question. Regardons un exemple.

scp -P 40050 Desktop / url.txt [email protected]: ~ /Desktop/ url.txt

Cette commande comporte l'indicateur [-P]( notez que c'est un P majuscule).Cela me permet de spécifier un numéro de port au lieu du numéro par défaut 22. Ceci est nécessaire pour moi à cause de la façon dont j'ai configuré mon système.

Ensuite, mon fichier original est "url.txt" qui se trouve dans un répertoire appelé "Desktop".Le fichier de destination est dans "~ /Desktop/ url.txt" qui est le même que "/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 devez faire le contraire? Vous pouvez également copier des fichiers à partir d'un serveur distant.

Ici, j'ai copié un fichier du dossier "~ /Desktop/" de l'ordinateur distant vers le dossier "Desktop" de mon ordinateur.

Pour copier des répertoires entiers, vous devez utiliser le drapeau [-r]( notez qu'il s'agit d'un r minuscule).

Vous pouvez également combiner des drapeaux. Au lieu de

scp -P. ..

Vous pouvez juste faire

scp -Pr. ..

La partie la plus difficile ici est que la complétion de tabulation ne fonctionne pas toujours, donc il est utile d'avoir un autre terminal avec une session SSH fonctionnant pour que vous sachiezoù mettre les choses.

SSH et SCP sans mots de passe

La copie sécurisée est géniale. Vous pouvez le mettre dans des scripts et faire 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, c'est très pénible de mettre votre mot de passe sur un ordinateur distant auquel vous avez évidemment accès en permanence.

Eh bien, nous pouvons contourner l'utilisation des mots de passe en utilisant des fichiers clés. Nous pouvons faire en sorte que l'ordinateur génère deux fichiers clés - un public appartenant au serveur distant et un privé qui se trouve sur votre ordinateur et doit être sécurisé - et ils seront utilisés à la place d'un mot de passe. Assez pratique, non?

Sur votre ordinateur, entrez la commande suivante:

ssh-keygen -t rsa

Cela va générer les deux clés et les placer dans:

~ /.ssh/

avec les noms "id_rsa" pour votre clé privée, et "id_rsa.pub" pourvotre clé publique.

Après avoir entré la commande, on vous demandera où sauvegarder la clé.Vous pouvez appuyer sur Entrée pour utiliser les paramètres par défaut mentionnés ci-dessus.

Ensuite, vous serez invité à entrer une phrase secrète. Appuyez sur Entrée pour laisser ce champ vide, puis recommencez lorsque vous demandez une confirmation. L'étape suivante consiste à copier le fichier de clé publique sur votre ordinateur distant. Vous pouvez utiliser scp pour ce faire:

La destination de votre clé publique est sur le serveur distant, dans le fichier suivant:

~ /.ssh/ authorized_keys2

Les clés publiques suivantes peuvent être ajoutées à ce fichier, comme le fichier ~ /.ssh/ known_hosts. Cela signifie que si vous vouliez ajouter une autre clé publique pour votre compte sur ce serveur, vous copieriez le contenu du deuxième fichier id_rsa.pub dans une nouvelle ligne sur le fichier authorized_keys2 existant.

Security Considerations

N'est-ce pas moins sécurisé qu'un mot de passe?

Dans un sens 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, même pas 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 qui a 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 de la fenêtre. Si quelqu'un a votre fichier de clé privée, alors la sécurité est perdue sur n'importe quel ordinateur qui a la clé publique correspondante, mais ils ont besoin d'accéder à votre ordinateur pour l'obtenir.

Est-ce que cela peut être plus sûr?

Vous pouvez combiner un mot de passe avec des fichiers clés. Suivez les étapes ci-dessus, mais entrez une phrase secrète forte. Maintenant, lorsque vous vous connectez via SSH ou utilisez SCP, vous avez besoin du fichier de clé privée et approprié.

Une fois que vous avez saisi votre mot de passe une fois, il ne vous sera pas demandé à nouveau tant que vous n'aurez pas fermé 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 suivantes ne le nécessiteront pas. Une fois que vous vous êtes déconnecté de votre ordinateur( pas celui de la télécommande) 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 harcelé pour les mots de passe tout le temps.

Puis-je réutiliser la paire de clés publique / privée?

C'est vraiment une 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 super-secret et important.(Pour plus d'informations, consultez la rubrique Comment récupérer après la compromission de votre mot de passe de messagerie électronique)

Il est préférable de créer de nouvelles paires de clés pour chaque ordinateur et compte que vous souhaitez lier. De cette façon, si l'une de vos clés privées est interceptée, vous ne faites que compromettre un compte sur un ordinateur distant.

Il est également 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 sécurisé et crypté, puis créer des liens symboliques dans votre répertoire ~ /.ssh/.En fonction de ce que je fais, j'utilise cette méthode super sécurisée super-paranoïaque pour me mettre à l'aise.

Avez-vous utilisé SCP dans n'importe quel script? Utilisez-vous des fichiers clés au lieu de mots de passe? Partagez votre propre expertise avec d'autres lecteurs dans les commentaires!