4 votes

Permission refusée (clé publique) ssh ec2 instance mac

Mise à jour2 :

$ ls -ld ~/.ssh
drwx------  8 user  staff  272  2 Oct 17:51 /Users/user/.ssh
$ ls -la ~/.ssh/config/file.pem 
-r--------@ 1 user staff 1692 2 Oct 17:11 /Users/user/.ssh/config/file.pem 
$ ls -la file.pem 
-rw-------@ 1 user staff 1692 2 Oct 17:11 localfile.pem

Mise à jour :

Après la commutation -i y -v les drapeaux que je reçois maintenant :

OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/user/.ssh/config
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 53: Applying options for *
debug1: Connecting to ec2-XX-XX-XXX-XXX.areacode.compute.amazonaws.com [IP] port 22.
debug1: Connection established.
debug1: identity file file.pem type -1
debug1: identity file file.pem-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.2
debug1: match: OpenSSH_6.2 pat OpenSSH*
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5-etm@openssh.com none
debug1: kex: client->server aes128-ctr hmac-md5-etm@openssh.com none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA fingerprint
debug1: Host 'ec2-XX-XX-XXX-XXX.ap-areacode.compute.amazonaws.com' is known and matches the RSA host key.
debug1: Found key in /Users/user/.ssh/known_hosts:11
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: file.pem
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

J'essaie de me connecter à l'instance Linux ec2 d'Amazon à partir de mon terminal Mac. J'ai suivi ces instructions : http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html

Mais j'ai Permission denied (publickey)

Mes paramètres de sécurité autorisent mon ip public à ssh.

Elle a d'abord réussi à :

Permanently added 'ec2-XX-XX-XXX-XXX.areacode.compute.amazonaws.com,YY.YY.YYY.YYY' (RSA) to the list of known hosts.

$ ssh -i ec2vb.pem e2c-user@ec2-XX-XX-XXX-XXX.ap-areacode.compute.amazonaws.com
Permission denied (publickey).

$ ssh -i -v /path/to/ec2/file.pem e2c-user@ec2-XX-XX-XXX-XXX.areacode.compute.amazonaws.com
Warning: Identity file -v not accessible: No such file or directory.
ssh: Could not resolve hostname /Developer/folder/ec2/file.pem: nodename nor servname provided, or not known

J'ai aussi essayé de mettre à jour la permission pour chmod key 600 et en copiant ma clé sur l'utilisateur .ssh/config dossier ?

3voto

freddie montana Points 21

OpenSSH est particulier quant à la façon dont les clés sont stockées et utilisées. Faites ce qui suit :

1) Créez et assurez-vous que votre répertoire ~/.ssh a les bonnes permissions :

$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ ls -ld ~/.ssh
drwx------ 2 username group 4096 Jun 10 19:47 /Users/username/.ssh

2) Copiez la clé privée (dans votre cas le fichier .pem) dans le répertoire ~/.ssh et définissez les permissions appropriées :

$ cp ~/Downloads/filename.pem ~/.ssh/filename.pem
$ chmod 600 ~/.ssh/filename.pem

3) Puisque vous utilisez OS X, vérifiez que Finder n'a pas défini d'attributs étendus inutiles et supprimez-les :

$ xattr -l ~/.ssh/filename.pem
$ xattr -d <attr_name> ~/.ssh/filename.pem

4) Vous pouvez maintenant essayer d'utiliser la clé :

$ ssh -i ~/.ssh/filename.pem username@remote.hostname.com

5) Une fois que vous avez vérifié ce travail, vous pouvez utiliser le fichier ~/.ssh/config pour faciliter la connexion à l'hôte distant, plutôt que de devoir spécifier manuellement le fichier d'identité à utiliser. Par exemple :

Host remote.hostname.com
  User username
  IdentityFile ~/.ssh/filename.pem

A partir de maintenant, vous pouvez simplement exécuter ssh remote.hostname.com pour vous connecter à votre serveur distant.

1voto

Solata Points 101
debug1: Trying private key: file.pem
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

Votre client a envoyé la clé au serveur, et le serveur ne l'a pas acceptée. En ce qui concerne votre client, votre clé privée et les autorisations de fichiers et de répertoires locaux sont en ordre. Vous devez résoudre ce problème du côté du serveur. Je ne connais pas la spécificité des serveurs EC2, mais s'il s'agissait d'un serveur Unix normal, vous vérifieriez les points suivants :

  1. Recherchez les messages de sshd dans le journal du serveur.
  2. Vérifiez les permissions du répertoire personnel de l'utilisateur e2c et du répertoire .ssh sur le serveur.
  3. Vérifiez les permissions pour le ~ec2-user/.ssh/authorized_keys sur le serveur.
  4. Vérifiez que la clé publique de la clé privée que vous essayez d'utiliser se trouve bien dans le fichier clés_autorisées sur le serveur. Cela peut être fait en allant sur le serveur EC2-->Instances-->(sélectionnez votre instance)-->Description-->Nom de la paire de clés (Cela doit être le même que le nom de la clé que vous utilisez).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X