scp (copie sécurisée) vers l'instance ec2 sans mot de passe


404

J'ai une instance EC2 en cours d'exécution (FreeBSD 9 AMI ami-8cce3fe5), et je peux y accéder en utilisant mon fichier de clé créé par Amazon sans invite de mot de passe, pas de problème.

Cependant, lorsque je veux copier un fichier sur l'instance à l'aide de scp, on me demande d'entrer un mot de passe:

scp somefile.txt -i mykey.pem root@my.ec2.id.amazonaws.com:/

Password:

Avez-vous des idées pourquoi cela se produit / comment cela peut-il être évité?


Utilisez-vous exactement le même identifiant pour l'utilisateur et l'hôte?
— Lynch

Je ne suis pas sûr de comprendre ce que vous entendez par identifiant, pourriez-vous expliquer?
— Hoff

si pour une connexion vous utilisez une adresse IP et pour l'autre vous utilisez un nom, cela ne fonctionnera pas. Je viens de voir que vous utilisez l' -ioption pour fournir votre identité. Il se peut que vous deviez également afficher la commande que vous utilisez pour vous connecter avec ssh.
— Lynch

merci lynch, compris!
— Hoff

Réponses:


804

Je l'ai compris. J'avais les arguments dans le mauvais ordre. Cela marche:

scp -i mykey.pem somefile.txt root@my.ec2.id.amazonaws.com:/

14
de qui comprend comment se connecter à ec2 via ssh, il suffit de changer la sshcommande en scpet d'ajouter le fichier de noms après le fichier pem.
— Claudio Santos

11
Comme cette réponse est un peu ancienne, un exemple plus récent de ma nouvelle instance EC2: scp -i kp1.pem ./file.txt ec2-user@1.2.3.4: / home / ec2-user
— siliconrockstar

1
@siliconrockstar Votre relevé ec2-user@1.2.3.4:/home/ec2-userest facilement remplacé par le ec2-user@1.2.3.4:./ ./FTW plus court et plus facile !
— brock

2
Un commentaire très tardif, mais ce que @ClaudioSantos suggère ne fonctionne pas exactement si vous utilisez un port non standard. C'est -p pour ssh et -P pour scp.
— Inukshuk

1
Je peux utiliser mon fichier * .PEM pour passer en ssh dans ec2. cependant, quand je veux l'utiliser pour SCP un fichier, il me donne l'erreur "Autorisation refusée"! Comment puis-je resoudre ceci?
— AleX_

58
scp -i /path/to/your/.pemkey -r /copy/from/path user@server:/copy/to/path

Le paramètre (-r) n'est pas requis mais il est nécessaire de supprimer (/) de la fin du chemin distant. Votre exemple a fonctionné pour moi, merci beaucoup
— Abbas

35

J'ai utilisé la commande ci-dessous pour copier à partir de Linux local Centos 7 vers AWS EC2.

scp -i user_key.pem file.txt ec2-user@my.ec2.id.amazonaws.com:/home/ec2-user


19
scp -i ~/.ssh/key.pem ec2-user@ip:/home/ec2-user/file-to-copy.txt .

Le nom du fichier ne doit pas être compris entre le fichier pem et la chaîne ec2-user - cela ne fonctionne pas. Cela vous permet également de réserver le nom du fichier copié.


14

copier un fichier d'un serveur local vers un serveur distant

sudo scp -i my-pem-file.pem ./source/test.txt ec2-user@1.2.3.4:~/destination/

copier un fichier d'un serveur distant vers une machine locale

sudo scp -i my-pem-file.pem ec2-user@1.2.3.4:~/source/of/remote/test.txt ./where/to/put

La syntaxe est donc: -

scp -i my-pem-file.pem username@source:/location/to/file username@destination:/where/to/put

-iest pour le fichier d'identité


8

Supposons que votre fichier pem et le fichier somefile.txt que vous souhaitez envoyer se trouvent dans le dossier Téléchargements

scp -i ~/Downloads/mykey.pem ~/Downloads/somefile.txt root@my.ec2.id.amazonaws.com:~/

faites-moi savoir si cela ne fonctionne pas


scp -i /Users/Username/Downloads/myfile.pem -r ubuntu@my.ect.id.amazonaws.com: ~ / ~ / Desktop / au cas où vous souhaiteriez transférer des fichiers du serveur vers le local
— Yatender Singh

2
Merci j'ai eu "accès refusé" avec :/à la fin mais avec :~/ça marche
— cardamome

oui parce que: / est le dossier racine et: ~ / est le dossier utilisateur, donc si vous êtes root, alors: / ou: ~ / tout fonctionnera et si vous n'êtes pas root, alors seulement: ~ / vous devez utiliser.
— Yatender Singh

3

scp -i /home/barkat/Downloads/LamppServer.pem lampp_x64_12.04.tar.gz

ce sera très utile pour vous tous


2

Mon hadoopec2cluster.pemfichier était le seul dans le répertoire de mon mac local, je ne pouvais pas le scper sur aws scp -i hadoopec2cluster.pem hadoopec2cluster.pem ubuntu@serverip:~.

Copiez hadoopec2cluster.pem dans hadoopec2cluster_2.pem puis scp -i hadoopec2cluster.pem hadoopec2cluster_2.pem ubuntu@serverip:~. Voila!


2

J'ai raccroché parce que je spécifiais mon fichier de clé publique dans

scp -i [private key file path]

Lorsque j'ai détecté cette erreur et l'ai remplacée par le chemin d'accès à la clé privée, j'étais prêt.


2

Dans votre cas, l'utilisateur rootn'aura aucun problème. Mais dans certains cas où vous devez vous connecter sous SSH en tant qu'utilisateur différent, assurez-vous que le répertoire que vous utilisez scppossède les autorisations adéquates pour l'utilisateur que vous utilisez SSH.


1

Pour utiliser PSCP, vous avez besoin de la clé privée que vous avez générée lors de la conversion de votre clé privée à l'aide de PuTTYgen. Vous avez également besoin de l'adresse DNS publique de votre instance Linux

pscp -i C:\path\my-key-pair.ppk C:\path\Sample_file.txt ec2-user@public_dns:/home/ec2-user/Sample_file.txt

0

écrire ce code

scp -r -o "ForwardAgent=yes" /Users/pengge/11.vim root@192.168.2.228:/root/

Si vous avez une clé SSH avec accès au serveur de destination et que le serveur source ne le fait pas, l'ajout de -o "ForwardAgent = yes" vous permettra de transférer votre agent SSH vers le serveur source afin qu'il puisse utiliser votre clé SSH pour se connecter à le serveur de destination.


-6

Vient de tester:

Exécutez la commande suivante:

sudo shred -u /etc/ssh/*_key /etc/ssh/*_key.pub

Alors:

  1. créer un ami (image de l'ec2).
  2. lancement à partir d'un nouvel ami (image) de l'étape n ° 2 a choisi de nouvelles clés.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.