Permissão negada (chave pública) ssh ec2 instance mac [closed]

3

Update2:

$ 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

Atualização:

Depois de trocar -i e -v flags, agora obtenho:

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 [email protected] none
debug1: kex: client->server aes128-ctr [email protected] 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).

Estou tentando usar o ssh no amazon linux ec2 instance do meu terminal mac. Segui estas instruções: link

Mas recebo Permission denied (publickey)

Minhas configurações de segurança permitem meu ip público para o ssh.

Inicialmente conseguiu:

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 [email protected]
Permission denied (publickey).

$ ssh -i -v /path/to/ec2/file.pem [email protected]
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

Eu também tentei atualizar a permissão para chmod key 600 e copiar minha chave para a pasta user .ssh/config ?

    
por jskye 02.10.2014 / 10:45

2 respostas

1
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).

Seu cliente enviou a chave para o servidor e o servidor não a aceitou. No que diz respeito ao seu cliente, sua chave privada e as permissões de arquivo e diretório locais estão bem. Você precisa solucionar isso do lado do servidor. Eu não sei como os servidores EC2 são especiais, mas se este fosse um servidor Unix normal, você verificaria o seguinte:

  1. Procure mensagens no registro do servidor a partir do sshd.
  2. Verifique as permissões do diretório inicial do usuário e2c e do diretório .ssh no servidor.
  3. Verifique as permissões para o arquivo ~ ec2-user / .ssh / authorized_keys no servidor.
  4. Verifique se a chave pública dessa chave privada que você está tentando usar está, na verdade, em authorized_keys no servidor. Isso pode ser feito acessando o servidor do EC2 - > Instâncias - > (selecione sua instância) - > Descrição - > Nome do par de chaves (Deve ser o mesmo nome da chave que você é usando)
por 03.10.2014 / 16:24
1

O OpenSSH é específico de como as chaves são armazenadas e usadas. Faça o seguinte:

1) Crie e garanta que seu diretório ~ / .ssh tenha as permissões corretas:

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

2) Copie a chave privada (no seu caso o arquivo .pem) para o diretório ~ / .ssh e defina as permissões apropriadas:

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

3) Como você está usando o OS X, verifique se o Finder não definiu nenhum atributo estendido desnecessário e remova-o:

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

4) Agora você pode tentar usar a chave:

$ ssh -i ~/.ssh/filename.pem [email protected]

5) Depois de verificar este trabalho, você pode usar o arquivo ~ / .ssh / config para facilitar a conexão com o host remoto, em vez de precisar especificar manualmente o arquivo de identidade a ser usado. Por exemplo:

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

Deste ponto em diante, você pode simplesmente executar ssh remote.hostname.com para se conectar ao seu servidor remoto.

    
por 02.10.2014 / 12:04