J’essaie d’utiliser mon terminal Mac pour scp un fichier de Downloads (phpMyAdmin j’ai téléchargé en ligne) vers mon instance Amazon EC2.
La commande que j’ai utilisée était:
scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/.
L’erreur que j’ai eue : Avertissement: fichier d’identité myAmazonKey.pem non accessible: pas de fichier ou répertoire de ce type. Permission refusée (publickey). connexion perdue
MyAmazonkey.pem et phpMyAdmin-3.4.5-all-languages.tar.gz sont tous deux en téléchargement, alors j’ai essayé
scp -i /Users/Hello_Kitty22/Downloads/myAmazonKey.pem /Users/Hello_Kitty22/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/.
et l’erreur que j’ai eue : Avertissement: Le fichier d’identité /User/Hello_Kitty22/Downloads/myAmazonkey.pem n’est pas accessible: aucun fichier ou répertoire de ce type. Permission refusée (publickey). connexion perdue
Quelqu’un peut-il s’il vous plaît me dire comment résoudre mon problème?
ps il y a un post similaire: scp (copie sécurisée) à ec2 instance sans mot de passe mais il ne répond pas à ma question.
Essayez de spécifier que l’utilisateur doit être ec2-user
, par exemple
scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/.
Voir Connexion à des instances Linux / UNIX à l’aide de SSH .
second 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 pour la machine dans laquelle vous vous trouvez 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 visible publiquement pour que SSH fonctionne. Utilisez cette commande si nécessaire:
chmod 400 yourPublicKeyFile.pem
Vous devriez être sur votre ordinateur local 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 [email protected]:~/.
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:
(laissez-le vide ici)
une fois que vous avez fait cette partie, entrez dans le serveur ssh et le fichier mv à l’emplacement souhaité
scp -i ~/path to pem file/file.pem -r(for directory) /PATH OF LOCAL/localfile user@hostname:PATH OF SERVER/serverdirectory
Voici les détails de ce qui fonctionne pour une instance EC2 :
scp -i /path/to/whatever.pem /users/me/path-to-file [email protected]:~
Quelques notes pour commencer:
-i
scp
synonyme de protocole de transfert sécurisé. Connaître les mots facilite la mémorisation de la commande. -i
indique que vous devez donner le fichier .pem
comme paramètre suivant. S’il n’y a pas de -i
, vous n’avez pas besoin d’un .pem
. :~
à la fin de la destination pour l’instance EC2. Vérifiez les permissions sur le fichier .pem … Habituellement, openssh n’aime pas les clés privées lisibles par le monde et échouera (iir, scp ne fournit pas ce retour à l’utilisateur).
Pouvez-vous simplement ssh avec cette clé sur votre hôte AWS?
Vous devez d’abord changer le mode du fichier .pem
du mode lecture et écriture en mode lecture seule. Cela peut se faire 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, en ai lancé une autre et répété le même processus exact. Cette fois pas de problèmes. Parfois, ce pourrait être la faute de l’ami distant.
Le processus d’utilisation de SCP pour copier des fichiers depuis un ordinateur local vers une instance AWS EC2 Linux est traité étape par étape (y compris les points mentionnés ci-dessous) dans cette vidéo .
Pour corriger ce problème particulier avec l’utilisation de SCP:
Vous devez spécifier le bon utilisateur Linux. De Amazon :
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'