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.
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]:~/.
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.
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.
Essayez sur votre machine locale:
scp -i ~/Downloads/myAmazonKey.pem ~/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/.
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
signifie protocole de copie sécurisée. 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. 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é
scp -i ~/path to pem file/file.pem -r(for directory) /PATH OF LOCAL/localfile user@hostname:PATH OF SERVER/serverdirectory
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.
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?
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
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
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:
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 afin que seul l'utilisateur root puisse lire le fichier.
chmod 400 /path/to/yourKeyFile.pem
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.