Utiliser scp pour copier un fichier dans Amazon EC2 instance?

j'essaie d'utiliser mon Terminal Mac pour scp un fichier de téléchargements (phpMyAdmin j'ai téléchargé en ligne) à mon Amazon EC2 instance.

la commande que j'ai utilisée était:

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz  hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

l'erreur que j'ai eu: avertissement: fichier D'identité myAmazonKey.pem non accessible: Pas de tel fichier ou répertoire. Permission refusée (publickey). perte de connexion

mes deux myAmazonkey.pem et phpMyAdmin-3.4.5 toutes les langues.tar.gz sont dans les téléchargements, alors j'ai essayé

scp -i /Users/Hello_Kitty22/Downloads/myAmazonKey.pem /Users/Hello_Kitty22/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz  hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

et l'erreur que j'ai obtenu: Avertissement: le fichier d'Identité /Utilisateur/Hello_Kitty22/Téléchargements/myAmazonkey.pem non accessible: Pas de tel fichier ou répertoire. Permission refusée (publickey). perte de connexion

quelqu'un Peut-il me dire comment résoudre mon problème?

p. S. il y a un post similaire: scp (copie sécurisée) à ec2 instance sans mot de passe mais il n'a pas répondu à ma question.

150
demandé sur Community 2012-07-09 05:02:53

12 réponses

essayer de spécifier que l'utilisateur est ec2-user , p.ex.

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz ec2-user@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

Voir Connexion à Linux/UNIX Instances à l'Aide de SSH .

296
répondu W.P. McNeill 2012-12-18 03:21:32

deuxième répertoire est votre destination cible, n'utilisez pas le nom du serveur. En d'autres termes, vous n'avez pas besoin de mentionner le nom de la machine dans laquelle vous êtes actuellement.

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

-r si c'est un répertoire.

23
répondu Syed Priom 2014-04-10 10:21:27

votre clé ne doit pas être accessible au public pour que SSH puisse fonctionner. Utilisez cette commande si nécessaire:

chmod 400 yourPublicKeyFile.pem
15
répondu Castelmager 2014-05-18 21:02:08

vous devriez être sur votre machine locale pour essayer la commande scp ci-dessus.

sur votre machine locale essayez:

scp -i ~/Downloads/myAmazonKey.pem ~/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz  hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/.
10
répondu DV Dasari 2012-10-08 03:15:47

j'ai eu exactement le même problème, ma solution était de

scp -i /path/pem -r /path/file/ ec2-user@public aws dns name: (laisser en blanc ici)

une fois que vous avez fait cette partie, accédez au serveur ssh et au fichier mv à l'emplacement désiré""

5
répondu Mustafa Kahraman 2016-01-05 02:03:54

Voici les détails de ce qui fonctionne pour un EC2 exemple:

scp -i /path/to/whatever.pem /users/me/path-to-file ec2-user@ec2-55-55-555-555.compute-1.amazonaws.com:~

quelques notes pour commencer:

  1. noter les espaces entre les trois paramètres donnés après le -i
  2. scp signifie protocole de copie sécurisée. Connaître les mots rend plus facile de mémoriser la commande.
  3. -i dicte que vous devez donner le .pem fichier comme la prochaine param. S'il n'y a pas de -i , vous n'avez pas besoin de .pem .
  4. noter le :~ à la fin de la destination pour L'instance EC2.
4
répondu Forrest 2018-09-06 14:17:54
scp -i ~/path to pem file/file.pem -r(for directory) /PATH OF LOCAL/localfile user@hostname:PATH OF SERVER/serverdirectory
3
répondu Prafull 2016-05-05 07:32:49

vérifiez les permissions sur le .fichier pem...openssh n'aime généralement pas les clés privées lisibles dans le monde entier, et va échouer (IIR, scp ne fait pas un bon travail de fournir cette rétroaction à l'utilisateur).

pouvez-vous simplement ssh avec cette clé de votre hôte AWS?

0
répondu Bryan Stenson 2012-07-09 04:43:31

vous devez d'abord changer le mode du fichier .pem du mode Lecture et écriture au mode Lecture seule. Cela peut être fait par une seule commande dans le terminal sudo chmod 400 your_public_key.pem

0
répondu Shravan40 2015-09-26 07:17:02

j'ai essayé toutes les suggestions mentionnées ci-dessus et rien n'a fonctionné. J'ai terminé l'instance actuelle, j'en ai lancé une autre et j'ai répété exactement le même processus. Cette fois, pas de problèmes. Parfois, c'est peut-être la faute d'ami.

0
répondu Marie D. 2017-09-05 23:19:46

le processus d'utilisation de SCP pour copier des fichiers d'une machine locale vers une instance Linux AWS EC2 est couvert étape par étape (y compris les points mentionnés ci-dessous) dans cette vidéo .

pour corriger cette question particulière en utilisant SCP:

  1. vous devez spécifier l'utilisateur Linux correct. De Amazon :

    • pour Amazon Linux, le nom d'utilisateur est ec2-utilisateur.
    • pour RHEL, le nom d'utilisateur est ec2-user ou root.
    • Pour Ubuntu, le nom d'utilisateur est ubuntu ou root.
    • pour Centos, le nom d'utilisateur est centos.
    • Pour Fedora, le nom d'utilisateur est ec2-user.
    • Pour SUSE, le nom d'utilisateur est ec2-user ou root.
    • Sinon, si ec2-user et root ne fonctionnent pas, vérifiez auprès de votre fournisseur AMI.
  2. votre clé privée ne doit pas être visible publiquement. Exécutez la commande suivante pour que seul l'utilisateur root puisse lire le fichier.

    chmod 400 /path/to/yourKeyFile.pem
    
0
répondu blackHoleDetector 2017-11-26 18:17:26

j'utiliserais:

scp -i "path to .pem file" "file to be copeide from local machine" username@amazoninstance: 'destination folder to copy file on remote machine'

-1
répondu user1738344 2012-10-11 14:19:40