Quelle est l'autorisation de file approprié pour un file .pem vers SSH et SCP

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:

  1. Téléchargez le file .pem.
  2. Dans Amazon Dashboard, select "Instances" dans la barre de gauche, puis select l'instance à laquelle vous souhaitez vous connecter.
  3. Cliquez sur "Actions", puis select "Connect"
  4. Cliquez sur "Se connecter avec un client SSH autonome"
  5. Ouvre une window de terminal
  6. Créer un directory:

     # mkdir -p ~/.ssh 
  7. Déplacez le file .pem téléchargé dans le directory .ssh que nous venons de créer:

     # mv ~/Downloads/ec2private.pem ~/.ssh 
  8. Modifiez les permissions du file .pem afin que seul l'user root puisse le lire:

     # chmod 400 ~/.ssh/ec2private.pem 
  9. 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.

  10. 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 souvent root mais peut être ec2-user . Pour Ubuntu, le nom d'user est ubuntu . Pour SUSE Linux, le nom d'user est root . 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.