ssh: Permissão negada (publickey)

0

Um colega trabalhou em um servidor e escreveu ssh [email protected] e a senha em nossa documentação.

Acabei de ssh-keygen na minha máquina e tentei ssh -v [email protected] da minha máquina, mas recebi o seguinte erro.

Alguém sabe como consertar isso?

OpenSSH_7.6p1, LibreSSL 2.6.2
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 48: Applying options for *
debug1: Connecting to xxx.xxx.xxx.xxx port 22.
debug1: Connection established.
debug1: identity file /Users/softtimur/.ssh/id_rsa type 0
debug1: key_load_public: No such file or directory
debug1: identity file /Users/softtimur/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/softtimur/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/softtimur/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/softtimur/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/softtimur/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/softtimur/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/softtimur/.ssh/id_ed25519-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.6
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.4p1 Ubuntu-10
debug1: match: OpenSSH_7.4p1 Ubuntu-10 pat OpenSSH* compat 0x04000000
debug1: Authenticating to xxx.xxx.xxx.xxx:22 as 'root'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:Pw4cFx5c2WGJzTwTL+gsx3AMHMEuT0sei1fz5oGCrac
debug1: Host 'xxx.xxx.xxx.xxx' is known and matches the ECDSA host key.
debug1: Found key in /Users/softtimur/.ssh/known_hosts:4
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: RSA SHA256:EL7hm5LvdVADZiv662nneDEeoLKy+etj8OT61eugu4Y /Users/softtimur/.ssh/id_rsa
debug1: Authentications that can continue: publickey
debug1: Trying private key: /Users/softtimur/.ssh/id_dsa
debug1: Trying private key: /Users/softtimur/.ssh/id_ecdsa
debug1: Trying private key: /Users/softtimur/.ssh/id_ed25519
debug1: No more authentication methods to try.
[email protected]: Permission denied (publickey).

Alguém sabe como consertar isso?

Editar 1:

No meu Mac local, curl ipecho.net/plain ; echo retorna 175.169.13.102 . Consegui abrir um console a partir do droplet do Digital Ocean de A , então eu fiz ssh-keygen , então no console, eu fiz ssh-copy-id [email protected] que retornou o seguinte; senha não foi pedida.

Eu ainda não consigo acreditar que um servidor possa gravar arquivos no meu Mac local como se o meu Mac local fosse um servidor ...

    
por SoftTimur 20.03.2018 / 09:09

1 resposta

1

Um exemplo de uma maneira de implantar o método de autenticação de chave pública é o seguinte. Suponha que você tenha servidores A (o servidor; o que você deseja se conectar) e B (o cliente; aquele de quem você deseja se conectar a A usando a chave pública).

  1. Em A , execute o seguinte comando:

    ssh-keygen

    • Isso gerará um par de chaves público-privado, se executado sem argumentos, fará isso em ~/.ssh .
  2. Em A , execute:

    ssh-copy-id [user@]<Bs-IP-address>

    • Isso copiará a chave pública gerada por A para B . Ele fará isso em um arquivo chamado ~/.ssh/authorized_keys .

    • Se isso não funcionar devido a problemas de conectividade ou se você simplesmente não conseguir se conectar do ponto A para B , há uma forma alternativa (manual) de fazendo isso. Na sua máquina A , acesse o diretório ~/.ssh e localize seu arquivo de chave pública. Este provavelmente será um arquivo com a extensão .pub . Abra e copie o conteúdo e, em B , adicione / cole no seu arquivo ~/.ssh/authorized_keys . Muito importante : esse arquivo precisa ser de propriedade do usuário, o grupo precisa ser do usuário e ter permissões 600 . Caso contrário, não funcionará . Isso é basicamente o que o ssh-copy-id faz.

  3. Em B , tente conectar por SSH a A .

Algumas coisas a serem observadas:

  • O comando no ponto 2 implementará a chave pública para o usuário remoto ao qual você está se conectando. Isso significa que, se você implantar a chave na casa de tom , um usuário cujo nome de usuário seja jerry não poderá usá-la. Em suma, a implantação é por usuário.
  • Se você estiver tentando implantar a chave para se conectar a A com root , verifique se a diretiva PermitRootLogin em /etc/ssh/sshd_config tem um valor de yes ou prohibit-password (preferencialmente). Se definido como no , a autenticação do método público não funcionará.
  • Nunca compartilhe uma chave privada com ninguém.
por 20.03.2018 / 09:53