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.