Ser avisado por senha depois de já ter sido registrada a chave pública no servidor [closed]

1

NOTA: Isso não é duplicado para a pergunta popular. Por que Ainda recebo uma solicitação de senha com o ssh com autenticação de chave pública?

Eu tive um post original, mas não recebi muitas respostas para me ajudar. Vou tentar explicar o meu problema de 3 dias em detalhes.

Como eu adicionei a chave id_rsa.pub ssh no meu servidor Ubuntu:

O que eu fiz foi criá-lo através do meu computador normal do Windows 10 através de um terminal git scm (pode ser encontrado aqui link ). Eu tive que usar o git porque um prompt normal do cmd no windows 10 não funcionava. Gerei através de ssh-keygen que gerou 2 chaves para mim, um id_rsa e um id_rsa.pub.

Depois disso eu fui no meu terminal putty, logado no meu servidor remoto e criei um diretório .ssh na minha pasta / home / superjohnny (meu usuário sudo) e fiz uma pasta dentro da pasta .ssh chamada authorized_keys. Eu copiei e colei minha chave id_rsa.pub na pasta authorized_keys e depois adicionei 600 permissões nela fazendo chmod 600 .ssh / authorized_keys.

Uma vez que eu fiz isso, eu entrei no meu / etc / ssh / sshd_config e adicionei o seguinte em minhas configurações:

    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile %h/.ssh/authorized_keys

Todas essas linhas também não foram comentadas. Eu então fiz sudo service ssh restart e então eu ainda recebi um aviso de senha quando tentava logar. Isto já dura uma semana

Os métodos que tentei: Eu usei ambos os tópicos que foram discutidos acima para tentar obter uma resposta e eu também usei minha pesquisa do google extensivamente. Aqui estão os métodos que eu usei.

1. Colocando a chave em uma linha Eu tentei usar no terminal git scm no meu computador o seguinte comando:

    cat ~/.ssh/id_rsa.pub | awk '{print}' ORS=' '

O comando acima supostamente não faz nada porque a chave já estava em uma linha quando copiei, é só que o terminal não cabia na chave. Aqui está o tópico que usei para encontrar esse comando. link

  1. Usando o comando wc: Usando este comando:

    wc ~/.ssh/authorized_keys
    

    Eu obtive uma saída de:

      1   3 398 /home/superjohnny/.ssh/authorized_keys
    
  2. Verificando se meu diretório pessoal está criptografado: Eu usei o seguinte comando:

    ls -A /home/superjohnny
    

    e obtive uma saída de:

    .bash_history  .bash_logout  .bashrc  .cache  .profile  .ssh  .viminfo
    

    Não foi encontrada nenhuma pasta criptografada.

  3. Indo no modo de depuração para verificar informações adicionais: Enquanto em uma sessão eu fiz o seguinte comando:

    ssh -v superjohnny@myip
    

e conseguiu isso como resultado:

    debug1: Found key in /home/superjohnny/.ssh/known_hosts:1
    debug1: ssh_ecdsa_verify: signature correct
    debug1: SSH2_MSG_NEWKEYS sent
    debug1: expecting SSH2_MSG_NEWKEYS
    debug1: SSH2_MSG_NEWKEYS received
    debug1: SSH2_MSG_SERVICE_REQUEST sent
    debug1: SSH2_MSG_SERVICE_ACCEPT received
    debug1: Authentications that can continue: publickey,password
    debug1: Next authentication method: publickey
    debug1: Trying private key: /home/superjohnny/.ssh/id_rsa
    debug1: Trying private key: /home/superjohnny/.ssh/id_dsa
    debug1: Trying private key: /home/superjohnny/.ssh/id_ecdsa
    debug1: Trying private key: /home/superjohnny/.ssh/id_ed25519
    debug1: Next authentication method: password

Isso deve ser uma dica para algo, mas olhando através da web por um tempo eu não consegui encontrar muito sobre este problema, só encontrei um tópico sobre isso aqui: link E este argumento apenas me diz para recriar o arquivo de chave que fiz numerosas vezes

  1. Usando o comando grep: Usando o seguinte comando:

    grep -v '^[[:space:]]*$' ~/.ssh/authorized_keys | wc -l
    

    Eu recebo uma saída de:

    1
    
  2. Verificando as mensagens dos registros: Usando o seguinte comando:

    sudo vi /var/log/auth.log
    

    Recebi muitos erros no mesmo dia, o mesmo erro exato, mas só vou postar um pouco dele:

     Apr 25 04:14:01 ramnode CRON[977]: pam_unix(cron:session): session    closed for user root
    Apr 25 04:54:01 ramnode CRON[1076]: pam_env(cron:session): Unable to open env file: /etc/default/locale: No such file or directory
    

    Eu não recebi nenhuma outra mensagem em outros dias além de 25 de abril.

  3. Continuando no modo de depuração com sshd:

Fazendo

    /usr/sbin/sshd -d

me dá uma saída de:

    debug1: sshd version OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
    debug1: could not open key file '/etc/ssh/ssh_host_rsa_key': Permission denied
    Could not load host key: /etc/ssh/ssh_host_rsa_key
    debug1: could not open key file '/etc/ssh/ssh_host_dsa_key': Permission denied
    Could not load host key: /etc/ssh/ssh_host_dsa_key
    debug1: could not open key file '/etc/ssh/ssh_host_ecdsa_key': Permission denied
    Could not load host key: /etc/ssh/ssh_host_ecdsa_key
    debug1: could not open key file '/etc/ssh/ssh_host_ed25519_key': Permission denied
    Could not load host key: /etc/ssh/ssh_host_ed25519_key
    debug1: setgroups() failed: Operation not permitted
    debug1: rexec_argv[0]='/usr/sbin/sshd'
    debug1: rexec_argv[1]='-d'

No entanto, adicionando o sudo na frente do comando likeso:

    sudo /usr/sbin/sshd -d

me dá uma saída de:

    debug1: sshd version OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
    debug1: key_parse_private2: missing begin marker
    debug1: read PEM private key done: type RSA
    debug1: private host key: #0 type 1 RSA
    debug1: key_parse_private2: missing begin marker
    debug1: read PEM private key done: type DSA
    debug1: private host key: #1 type 2 DSA
    debug1: key_parse_private2: missing begin marker
    debug1: read PEM private key done: type ECDSA
    debug1: private host key: #2 type 3 ECDSA
    debug1: private host key: #3 type 4 ED25519
    debug1: rexec_argv[0]='/usr/sbin/sshd'
    debug1: rexec_argv[1]='-d'
    Set /proc/self/oom_score_adj from -800 to -1000
  1. Tentando ver se as permissões do diretório inicial precisavam ser menores: Tentei alterar as permissões do diretório inicial porque achei que as permissões talvez não permitissem que o diretório .ssh funcionasse. Eu usei o seguinte comando:

    chmod 755 ~/
    

    mas isso não fez nada quando reiniciei meu terminal com o sudo service ssh restart e quando eu entrei novamente em outro terminal ele ainda me dava uma senha.

  2. Tentando desativar a senha Eu tentei desativar a senha e não sair da minha secessão para que eu possa mudá-lo se não funcionar. Eu fiz isso indo para o

    /etc/ssh/sshd_config 
    

    mas quando eu fui para uma nova tela de terminal, recebi o seguinte erro:

    Disconnected: No supported authentication methods avaliable(server sent: publickey
    

As mensagens /var/log/auth.log que eu tive ao tentar fazer o login com a senha desabilitada para que o sistema tentasse e usasse as chaves ssh eram:

    May  1 09:02:00 ramnode sshd[16905]: error: Received disconnect from 64.121.77.168: 14: No supported authentication methods available [preauth]
    May  1 09:02:13 ramnode sudo: superjohnny : TTY=pts/1 ; PWD=/home/superjohnny ; USER=root ; COMMAND=/usr/bin/vi /var/log/auth.log
    May  1 09:02:13 ramnode sudo: pam_unix(sudo:session): session opened for user root by superjohnny(uid=0)
    
por J4102 24.04.2016 / 16:39

1 resposta

1

Eu encontrei a resposta com a ajuda de um amigo muito bom que foi muito paciente com o meu problema. O problema era que o putty client não estava configurado para aceitar minha chave, eu tinha os arquivos de chaves autorizados e todas as permissões certas, é que esse pequeno problema não foi notado até agora.

No meu cliente putty eu não coloquei uma chave privada em minha secessão e originalmente pensei que o servidor remoto iria apenas olhar em meus arquivos e checar se a chave estava lá. Eu estava errado e meu amigo me disse que isso seria um grande risco à segurança e disse que a chave privada tinha que ser colocada em massa:

Obrigado por também ajudarem também, aprendi muito ao longo do caminho com este problema.

    
por 01.05.2016 / 16:27

Tags