Utiliser scp pour copier un fichier sur une instance Amazon EC2?

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:

  1. Notez les espaces entre les trois parameters donnés après le -i
  2. scp synonyme de protocole de transfert sécurisé. Connaître les mots facilite la mémorisation de la commande.
  3. -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 .
  4. Notez le :~ à 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:

  1. Vous devez spécifier le bon utilisateur Linux. De Amazon :

    • Pour Amazon Linux, le nom d’utilisateur est ec2-user.
    • 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, contactez 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 

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'