À l'aide de scp pour copier un fichier d'instance Amazon EC2?
J'essaie d'utiliser mon Mac Terminal de scp un fichier de Téléchargements (phpMyAdmin, j'ai téléchargé en ligne) à mon instance Amazon EC2.
La commande que j'ai utilisé était:
scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/.
L'erreur que j'ai obtenu:
Avertissement: fiche d'Identité myAmazonKey.pem n'est pas accessible: Aucun fichier ou répertoire.
Permission denied (publickey).
perte de connexion
Mon myAmazonkey.pem et phpMyAdmin-3.4.5-all-languages.tar.gz sont en 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 [email protected]:~/.
et l'erreur que j'ai obtenu:
Avertissement: fiche d'Identité /Utilisateur/Hello_Kitty22/Téléchargements/myAmazonkey.pem n'est pas accessible: Aucun fichier ou répertoire.
Permission denied (publickey).
perte de connexion
Quelqu'un peut-il me dire comment résoudre mon problème?
p.s. il y a un poste similaire: scp (secure copy) à l'instance ec2 sans mot de passe
mais cela ne répond pas à ma question.
- Je me sens comme quand je démarre mon instance Amazon en ligne, je ne peux pas accéder à mes fichiers locaux dans des Téléchargements plus
Vous devez vous connecter pour publier un commentaire.
Essayez de spécifier à l'utilisateur d'être
ec2-user
, par exempleVoir La connexion à Linux/UNIX Instances à l'Aide de SSH.
:/
voudrais essayer de copier le dossier à la racine du système, qui pourrait donner l'autorisation des erreurs sur toutes les machines sans sudo (ou en tant que root).deuxième répertoire est votre destination de cible, ne pas utiliser de serveur de nom. En d'autres termes, vous n'avez pas besoin de mentionner le nom de la machine pour la machine, vous êtes actuellement dans.
-r si c'est un répertoire.
Votre clé ne doit pas être accessible au public pour le SSH de travail. Utilisez cette commande si nécessaire:
Vous devriez être sur votre machine pour tenter au-dessus de la commande scp.
Sur votre machine locale essayer:
Voici les détails de ce qui fonctionne pour un EC2 exemple:
Quelques notes de début:
-i
scp
signifie secure copy protocol. Connaître les mots rend plus facile de mémoriser la commande.-i
dicte que vous avez besoin pour donner le.pem
fichier comme la prochaine param. Si il n'y a pas de-i
, que vous n'avez pas besoin d'un.pem
.:~
à la fin de la destination de l'instance EC2.J'ai eu exactement le même problème, ma solution a été de
scp -i /path/pem -r /path/file/ec2-user@public aws dns name:
(laisser vide ici)une fois que vous avez terminé cette partie, entrer dans le serveur ssh et le mv fichier à l'emplacement souhaité
Ci-dessous SCP format fonctionne pour moi
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 est dans /var/www
SampleFile2.txt: Ce sera le chemin de votre machine de la racine du chemin d'accès(Dans mon cas, /home/MyPCUserName)
Donc, je dois écrire en dessous de commande
Envoyer un fichier Local vers le Serveur:
Télécharger le fichier à partir du Serveur Local:
Le processus d'utilisation de SCP pour copier des fichiers à partir de la machine locale à une AWS EC2 instance de Linux est couvert étape par étape (y compris les points mentionnés ci-dessous) dans cette vidéo.
Pour corriger ce problème particulier avec l'aide de SCP:
Vous devez spécifier le nom utilisateur de Linux. De Amazon:
Votre clé privée ne doit pas être visible du grand public. Exécutez la commande suivante, de sorte que seul l'utilisateur root peut lire le fichier.
Vérifiez les autorisations sur le .fichier pem...openssh habituellement n'aime pas lisible par tout le monde de clés privées, et sera un échec (iir, scp n'est pas de faire un excellent travail de fournir ces informations à l'utilisateur).
Pouvez-vous simplement ssh avec cette clé à votre AWS hôte?
D'abord, vous devez changer le mode de
.pem
fichier en lecture et écriture en mode de lecture seule. Cela peut être fait par une seule commande dans le terminalsudo chmod 400 your_public_key.pem
J'ai essayé toutes les suggestions mentionnées ci-dessus et rien n'a fonctionné. J'ai mis fin à l'instance en cours, a lancé un autre et a répété le même processus. Cette fois, pas de problèmes. Parfois, il peut être la distance d'ami en faute.
Je voudrais utiliser:
scp -i "path to .pem file" "file to be copeide from local machine" username@amazoninstance: 'destination folder to copy file on remote machine'