web-dev-qa-db-fra.com

Vous utilisez scp pour copier un fichier sur une instance Amazon EC2?

J'essaie d'utiliser mon terminal Mac pour scp un fichier de Téléchargements (téléchargé en ligne par phpMyAdmin) sur 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 provoquée: Avertissement: Le fichier d'identité myAmazonKey.pem n'est pas accessible: Aucun fichier ou répertoire de ce type . Autorisation refusée (publickey) . Connexion perdue

Mon myAmazonkey.pem et phpMyAdmin-3.4.5-all-languages.tar.gz sont tous deux téléchargés, 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 provoquée: Avertissement: Fichier d'identité /User/Hello_Kitty22/Downloads/myAmazonkey.pem non accessible: Aucun fichier ou répertoire de ce type . Autorisation refusée (publickey) . connexion perdue

Quelqu'un peut-il me dire s'il vous plaît comment résoudre mon problème?

p.s. il y a un article similaire: scp (copie sécurisée) sur une instance ec2 sans mot de passe mais il ne répond pas à ma question. 

161
HoKy22

Essayez de spécifier l’utilisateur comme étant ec2-user, par exemple.

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/.

Voir Connexion aux instances Linux/UNIX à l’aide de SSH .

323
W.P. McNeill

le 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 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.

25
Syed Priom

Votre clé ne doit pas être visible publiquement pour que SSH fonctionne. Utilisez cette commande si nécessaire:

chmod 400 yourPublicKeyFile.pem
16
Castelmager

Vous devriez être sur votre ordinateur local pour essayer la commande scp ci-dessus.

Essayez sur votre machine locale:

scp -i ~/Downloads/myAmazonKey.pem ~/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz  [email protected]:~/.
10
DV Dasari

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 paramètres donnés après le -i
  2. scp signifie protocole de copie sécurisée. 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. 
6
Forrest

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 champ vide ici) 

une fois que vous avez terminé cette partie, entrez dans le serveur ssh et le fichier mv à l'emplacement souhaité

5
Mustafa Kahraman
scp -i ~/path to pem file/file.pem -r(for directory) /PATH OF LOCAL/localfile user@hostname:PATH OF SERVER/serverdirectory
3
Prafull

Envoyer un fichier de local à serveur:

scp -i .ssh/awsinstance.pem my_local_file [email protected]:/home/ubuntu

Téléchargez le fichier du serveur au local:

scp -i .ssh/awsinstance.pem [email protected]:/home/ubuntu/fichier_serveur.

2
Viraj.Hadoop

Vérifiez les autorisations sur le fichier .pem ... openssh n'aime généralement pas les clés privées lisibles par tout le monde et échouera (iir, scp ne fournit pas ce retour à l'utilisateur).

Pouvez-vous simplement SSH avec cette clé à votre hôte AWS?

0
Bryan Stenson

Tout d'abord, vous devez changer le mode du fichier .pem du mode lecture/écriture au mode lecture seule. Cela peut être fait simplement par une seule commande dans le terminal Sudo chmod 400 your_public_key.pem

0
Shravan40

Le format ci-dessous fonctionne pour moi

scp -i /path/my-key-pair.pem [email protected]:~/SampleFile.txt ~/SampleFile2.txt

SampleFile.txt : Ce sera le chemin de votre répertoire racine (dans mon cas,/home/ubuntu). dans mon cas, le fichier que je voulais télécharger se trouvait dans/var/www

SampleFile2.txt : Ce sera le chemin du chemin racine de votre machine (dans mon cas,/home/MyPCUserName)

Alors, je dois écrire ci-dessous commande

scp -i /path/my-key-pair.pem [email protected]:~/../../var/www/Filename.Zip ~/Downloads
0
Vatsal Shah

Le processus d'utilisation de SCP pour copier des fichiers d'un ordinateur local vers une instance AWS EC2 Linux est décrit é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, vérifiez auprès de votre fournisseur AMI. 
  2. Votre clé privée ne doit pas être visible publiquement. Exécutez la commande suivante afin que seul l'utilisateur root puisse lire le fichier.

    chmod 400 /path/to/yourKeyFile.pem
    
0
blackHoleDetector

J'ai essayé toutes les suggestions mentionnées ci-dessus et rien n'a fonctionné. J'ai mis fin à l'instance actuelle, en ai lancé une autre et répété exactement le même processus. Cette fois, pas de problèmes. Parfois, cela pourrait être la faute de l'AMI à distance. 

0
Marie D.