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.
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:~/.
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.
votre clé ne doit pas être accessible au public pour que SSH puisse fonctionner. Utilisez cette commande si nécessaire:
chmod 400 yourPublicKeyFile.pem
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:~/.
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é""
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:
- noter les espaces entre les trois paramètres donnés après le
-i
-
scp
signifie protocole de copie sécurisée. Connaître les mots rend plus facile de mémoriser la commande. -
-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
. - noter le
:~
à la fin de la destination pour L'instance EC2.
scp -i ~/path to pem file/file.pem -r(for directory) /PATH OF LOCAL/localfile user@hostname:PATH OF SERVER/serverdirectory
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?
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
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.
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:
-
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.
-
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
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'