J'ai essayé de SSH dans mon server AWS Ubuntu et copyr le directory sur ma machine locale. Tout au long du process, je rencontre différentes erreurs d'autorisation de file (notées ci-dessous).
Existe-t-il une autorisation de file spécifique nécessaire pour le file .pem qui me permet de SSH et SCP?
Ou dois-je changer l'autorisation du file deux fois – une fois pour SSH et une autre pour SCP après ma connection?
Voici les commands que j'utilise:
SSH:
ssh -i sentiment.pem Todo@54.555.555.555
Copiez de la télécommand vers l'ordinateur local avec:
scp Todo@54.555.555.555:/home/ubuntu/sentimentfolder /Users/Toga/Desktop/sentimentlocal
Je suis sur un Mac OS X 10.7.5.
Essai et erreur:
1.) Après avoir initialement téléchargé le file .pem, ses permissions ont été définies sur, je pense: 0644
-rw-r – r – @ 1 Personnel de Toga 1692 Feb 18 21:27 sentiment.pem
J'ai ensuite essayé de SSH via le terminal et a reçu ce qui suit:
WARNING: UNPROTECTED PRIVATE KEY FILE! Permissions 0644 for 'sentiment.pem' are too open. It is recommended that your private key files are NOT accessible by others. This private key will be ignored. bad permissions: ignore key: sentiment.pem Permission denied (publickey).
2.) J'ai mis à jour les permissions de file à: chmod 660 sentiment.pem
Après la mise à jour, les permissions ont été définies comme suit:
-rw-rw —- @ 1 Personnel de Toga 1692 Feb 18 21:27 sentiment.pem
J'ai ensuite essayé de SSH via le terminal et a reçu ce qui suit:
WARNING: UNPROTECTED PRIVATE KEY FILE! Permissions 0660 for 'sentiment.pem' are too open. It is recommended that your private key files are NOT accessible by others. This private key will be ignored. bad permissions: ignore key: sentiment.pem Permission denied (publickey).
3.) J'ai mis à jour les permissions de file à: chmod 600 sentiment.pem
Après la mise à jour, les permissions ont été définies comme suit:
-rw ——- @ 1 Personnel de Toga 1692 Feb 18 21:27 sentiment.pem
J'ai ensuite essayé de SSH via le terminal et a réussi!
4.) Maintenant connecté, j'exécute la command a pour copyr le directory distant sur mon ordinateur local avec:
scp Todo@54.555.555.555:/home/ubuntu/sentimentfolder /Users/Toga/Desktop/sentimentlocal
Quels returns:
Permission denied (publickey).
Commandes SCP tentées:
1.) a ajouté la command -i et référencé le file .pem:
scp -i sentiment.pem Todo@54.555.555.555: / home / ubuntu / sentimentfolder / Utilisateurs / Toga / Bureau / sentimentlocal
2.) a ajouté la command -i, a référencé le file .pem et a changé l'user pour AWS à ec2-user:
scp -i sentiment.pem ec2-user@54.555.555.555: / home / ubuntu / sentimentfolder / Utilisateurs / Toga / Bureau / sentimentlocal
3.) a ajouté la command -i, a référencé le file .pem, a changé l'user pour AWS en user ec2 et a ajouté le path complet du file pour l'location du file .pem:
scp -i /Users/Toga/Desktop/rollup/Personal/Serial_Project_Starter/sentiment/sentiment.pem ec2-user@54.555.555.555: / home / ubuntu / sentiment / Utilisateurs / Toga / Bureau / sentimentlocal
Comment se connecter à Amazon EC2 à distance à l'aide de SSH:
Créer un directory:
# mkdir -p ~/.ssh
Déplacez le file .pem téléchargé dans le directory .ssh que nous venons de créer:
# mv ~/Downloads/ec2private.pem ~/.ssh
Modifiez les permissions du file .pem afin que seul l'user root puisse le lire:
# chmod 400 ~/.ssh/ec2private.pem
Créer un file de configuration:
# vim ~/.ssh/config
Entrez le text suivant dans ce file de configuration:
Host *amazonaws.com IdentityFile ~/.ssh/ec2private.pem User ec2-user
Sauvegardez ce file.
Utilisez la command ssh avec votre nom d'hôte DNS public pour vous connecter à votre instance.
par exemple:
# ssh ec2-54-23-23-23-34.example.amazonaws.com
La permission refusée (publickey) provient du server distant, donc vous n'utilisez pas la bonne key, il est interdit de se connecter ou il y a une faute de frappe dans le file authorized_keys distant.
Il semble que vous ne soyez pas supposé utiliser l'adresse IP, mais le nom d'hôte complet du système dans la command SCP. Les documents AWS le décrivent sur http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html sous la section «Transfert de files vers des instances Linux / Unix à partir de Linux / Unix avec SCP».
Et utilisez -r
pour copyr des directorys.
Notez également que le nom d'user par défaut est différent pour différentes images:
Pour Amazon Linux, le nom d'user par défaut est
ec2-user
. Pour RHEL5, le nom d'user est souventroot
mais peut êtreec2-user
. Pour Ubuntu, le nom d'user estubuntu
. Pour SUSE Linux, le nom d'user estroot
. Sinon, vérifiez auprès de votre fournisseur d'AMI.
Alors, utilisez cette command:
scp -r -i /Users/Toga/Desktop/rollup/Personal/Serial_Project_Starter/sentiment/sentiment.pem ubuntu@ec2-xx-xx-xx-xx.compute-x.amazonaws.com:~/sentiment /Users/Toga/Desktop/sentimentlocal
chmod 0400 pemfile.pem
et
ssh -i path_to_pem_file -o UserKnownHostsFile=/dev/null -o SsortingctHostKeyChecking=no ec2-machine name
chmod 400 {keyfile}.pem
est ce que amazon a instruit et ça marche.