J'ai essayé de SSH sur mon serveur AWS Ubuntu et de copier le répertoire sur ma machine locale. Tout au long du processus, je rencontre différentes erreurs d'autorisation de fichier (notées ci-dessous).
Existe-t-il une autorisation de fichier spécifique requise pour le fichier .pem qui me permet de SSH et SCP?
Ou dois-je modifier l'autorisation de fichier deux fois - une fois pour SSH et une autre pour SCP après ma connexion?
Voici les commandes que j'utilise:
SSH:
ssh -i sentiment.pem [email protected]
Copiez de l'ordinateur distant vers l'ordinateur local avec:
scp [email protected]:/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 fichier .pem, ses autorisations ont été définies sur, je pense: 0644
-rw-r - r - @ 1 Toga staff 1692 18 février 21:27 sentiment.pem
J'ai ensuite essayé de SSH via le terminal et j'ai 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 du fichier pour: chmod 660 sentiment.pem
Après la mise à jour, les autorisations ont été définies sur:
-rw-rw ---- @ 1 Toga staff 1692 18 février 21:27 sentiment.pem
J'ai ensuite essayé de SSH via le terminal et j'ai 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 du fichier pour: chmod 600 sentiment.pem
Après la mise à jour, les autorisations ont été définies sur:
-rw ------- @ 1 Toga staff 1692 18 février 21:27 sentiment.pem
J'ai ensuite essayé de SSH via le terminal et j'ai réussi !!
4.) Maintenant connecté, j'exécute la commande a pour copier le répertoire distant sur mon ordinateur local avec:
scp [email protected]:/home/ubuntu/sentimentfolder /Users/Toga/Desktop/sentimentlocal
Qui retourne:
Permission denied (publickey).
Commandes SCP tentées:
1.) a ajouté la commande -i et référencé le fichier .pem:
scp -i sentiment.pem [email protected]:/home/ubuntu/sentimentfolder/Users/Toga/Desktop/sentimentlocal
2.) a ajouté la commande -i, référencé le fichier .pem et changé l'utilisateur d'AWS en ec2-user:
scp -i sentiment.pem [email protected]:/home/ubuntu/sentimentfolder/Users/Toga/Desktop/sentimentlocal
3.) a ajouté la commande -i, référencé le filem .pem, changé l'utilisateur pour AWS en ec2-user et ajouté le chemin d'accès complet au fichier pour l'emplacement du fichier .pem:
scp -i /Users/Toga/Desktop/rollup/Personal/Serial_Project_Starter/sentiment/sentiment.pem [email protected]:/home/ubuntu/sentiment/Users/Toga/Desktop/sentimentlocal
Visitez ici Comment se connecter à Amazon EC2 à distance en utilisant SSH ou reportez-vous ci-dessous.
Comment se connecter à distance à Amazon EC2 à l'aide de SSH:
Créez un répertoire:
# mkdir -p ~/.ssh
Déplacez le fichier .pem téléchargé vers le répertoire .ssh que nous venons de créer:
# mv ~/Downloads/ec2private.pem ~/.ssh
Modifiez les autorisations du fichier .pem afin que seul l'utilisateur root puisse le lire:
# chmod 400 ~/.ssh/ec2private.pem
Créez un fichier de configuration:
# vim ~/.ssh/config
Entrez le texte suivant dans ce fichier de configuration:
Host *amazonaws.com
IdentityFile ~/.ssh/ec2private.pem
User ec2-user
Enregistrez ce fichier.
Utilisez la commande 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
chmod 400 {keyfile}.pem
est ce qu'Amazon a demandé et cela fonctionne.
chmod 0400 pemfile.pem
et
ssh -i path_to_pem_file -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no ec2-machine name
Il semble que vous ne soyez pas censé utiliser l'adresse IP, mais le nom d'hôte complet du système dans la commande SCP. Les documents AWS décrivent cela sur http://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html sous la section "Transfert de fichiers vers des instances Linux/Unix depuis Linux/Unix avec SCP ".
Et utilise -r
pour copier les répertoires.
Et notez que le nom d'utilisateur par défaut est différent pour différentes images:
Pour Amazon Linux, le nom d'utilisateur par défaut est
ec2-user
. Pour RHEL5, le nom d'utilisateur est souventroot
mais peut êtreec2-user
. Pour Ubuntu, le nom d'utilisateur estubuntu
. Pour SUSE Linux, le nom d'utilisateur estroot
. Sinon, consultez votre fournisseur AMI.
Alors, utilisez cette commande:
scp -r -i /Users/Toga/Desktop/rollup/Personal/Serial_Project_Starter/sentiment/sentiment.pem [email protected]:~/sentiment /Users/Toga/Desktop/sentimentlocal
"L'autorisation refusée (publickey)" provient du serveur distant, donc vous utilisez soit la mauvaise clé, il n'est pas autorisé à se connecter ou il y a une faute de frappe dans le fichier remote_keys autorisé.