J'essaie de transférer un fichier sur une instance ec2. J'ai suivi la documentation d'Amazon, voici à quoi ressemblait ma commande:
scp -i [the key's location] Documents/[the file's location] ec2-user@[public dns]:[home/[destination]]
lorsque j'ai remplacé toutes les variables par les éléments appropriés, je suis sûr que c'est la clé correcte et qu'il dispose de l'autorisation 400. Lorsque j'appelle la commande, elle me dit que l'empreinte de clé RSA me demande si je souhaite continuer à me connecter. Je tape oui et il répond avec
Permission denied (publickey,gssapi-with-mic)
lost connection
J'ai examiné beaucoup d'autres questions similaires sur le dépassement de capacité de la pile et je ne trouve pas le moyen correct de le faire.
Le trafic ssh est également activé sur le port 22.
L'exemple fourni par Amazon est correct. Cela ressemble à un problème d'autorisations de dossier. Si vous avez créé le dossier que vous essayez de copier avec un autre utilisateur ou si un autre utilisateur l'a créé, il est fort probable que vous n'ayez pas le droit de copier ou de le modifier.
Si vous avez des compétences Sudo, vous pouvez essayer d’ouvrir un accès pour vous-même. Bien que cela ne soit pas recommandé, vous pouvez essayer cette commande:
Sudo chmod 777 /folderlocation
Cela donne à quiconque des autorisations complètes en lecture/écriture/exécutables (par conséquent, vous ne devriez pas le laisser à 777), mais cela vous donnera la possibilité de tester votre commande scp pour éliminer les autorisations.
Ensuite, si vous n'êtes pas familier avec les autorisations, je vous suggère de le lire. voici un exemple: http://www.tuxfiles.org/linuxhelp/filepermissions.html Il est généralement suggéré de verrouiller le dossier autant que possible en fonction du type d'informations qu'il contient.
Si ce n’est pas la cause, vous voudrez peut-être vérifier:
Bonne chance.
Le problème peut être le nom d'utilisateur. J'ai copié un fichier sur mon instance Amazon et j'ai d'abord essayé d'utiliser la commande suivante:
scp -r -i ../.ssh/Amazon_server_key_pair.pem ./empty.test [email protected]:~
et a obtenu l'erreur: permission refusée (publickey).
J'ai alors réalisé que mon instance est un environnement Ubuntu et que l'utilisateur utilisateur est ensuite "Ubuntu", la commande correcte qui a fonctionné pour moi est alors
scp -r -i ../.ssh/Amazon_server_key_pair.pem ./empty.test [email protected]:~
Le fichier "empty.test" est un fichier texte contenant le texte "testing ...". Remplacez l'adresse de votre serveur virtuel par l'adresse correcte dans le DNS public de votre instance. J'ai remplacé l'adresse IP de mon instance par xx.yy.zz.tt.
Je dois utiliser ubuntu @ au lieu de ec2-user @ car, quand je ssh, je voyais ubuntu @ dans mon terminal, essayez de changer le nom que vous voyez sur votre terminal.
Aussi, vous devez définir l'autorisation pour le fichier PEM sur votre ordinateur
chmod 400 /path/my-key-pair.pem
Le code ci-dessous copiera le fichier de votre ordinateur dans une instance Ec2.
scp -i ~/location_of_your_ec2_key_pair.pem ~/location_of_transfer_file/sample.txt ubuntu@ec2_your_ec2_instance.compute.amazonaws.com:~/folder_to_which_it_needs_to_be_copied
Le code ci-dessous copiera le fichier de l'instance Ec2 sur votre ordinateur.
scp -i ~/location_of_your_ec2_key_pair.pem ubuntu@ec2_your_ec2_instance.compute.amazonaws.com:~/location_of_transfer_file/sample.txt ~/folder_to_which_it_needs_to_be_copied
Peut-être que ceux qui utilise un mauvais nom d'utilisateur. Msg -> La permission a été refusée (publickey, gssapi-keyex, gssapi-with-mic).