O SSH ainda pede senha depois de configurar a autenticação baseada em chave

10

Eu criei com sucesso uma autenticação baseada em chave para o usuário root da minha máquina A para a minha máquina B.

Agora, criei um novo usuário na máquina B, da mesma forma que na máquina A, vamos chamá-lo de USER . Eu criei um diretório pessoal para ele na máquina B /home/USER e eu quero criar uma autenticação baseada em chave para ele da máquina A para a máquina B.

Então, eu corri em uma máquina

  1. ssh-keygen -t rsa , aceitou todos os caminhos, por isso /home/USER/.ssh/id_rsa e sem frases
  2. ssh-copy-id -i /home/USER/.ssh/id_rsa.pub USER@BmachinesIP , digitou a senha e recebeu uma massagem

Now try logging into the machine bla bla bla

Então, tudo parece estar bem.

Mas quando tentei conectar ssh USER@BmachinesIP , pedi uma senha. Eu tentei ver o log e corri ssh -vvv USER@BmachinesIP e aqui está uma parte da saída:

debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /home/USER/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/USER/.ssh/id_dsa
debug3: no such identity: /home/USER/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
USER@BmachinesIP's password:

Então, alguém pode me dizer o que eu fiz de errado ou o que eu deveria mudar? Talvez o problema esteja nas permissões, aqui estão elas:

em uma máquina:

drwx------  2 USER USER    SIZE DATE TIME .ssh
-rw-------  1 USER USER 1675 2011-10-31 14:36 id_rsa
-rw-r--r--  1 USER USER 413 2011-10-31 14:36 id_rsa.pub

e na máquina B:

drwx------  2 USER defaultGroup    SIZE DATE TIME .ssh
-rw-------    1 USER defaultGroup    SIZE DATE TIME authorized_keys
    
por tratto 31.10.2011 / 10:33

2 respostas

13

Eu encontrei uma solução. Houve um problema nas permissões.

/home/USER na máquina remota recebeu todas as permissões, mas para a autenticação baseada em chave, ela deve ser definida como 755

    
por 31.10.2011 / 12:16
2

O mesmo problema para a instalação do CentOS7.

1. verifique as permissões home dir e ~ / .ssh e ~ / .ssh / authorized_keys (conforme o @erik)

chmod o-w ~/; chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys

2. verifique as configurações do / etc / ssh / sshd_config & & service sshd restart (após cada edição) Útil: tente "LogLevel VERBOSE" em sshd_config.

Ainda recebo uma solicitação de senha depois de verificar tudo o que estava ok.

Execute o cliente ssh com logs -vvv:

debug3: send_pubkey_test 
debug2: we sent a publickey packet, wait for reply

Logs do servidor (/ var / log / secure):

Failed publickey for * from * port * ssh2: RSA *

O servidor ssh não envia mais informações de erro para o cliente, já que isso seria um risco de segurança.

Se eu executei o sshd na porta diferente 'sshd -p 5555 -d'. A chave funcionou. Login sem senha ok. WTF

Então eu desativei o selinux (configure SELINUX = disabled em / etc / selinux / config) e reinicie. O login sem senha funcionou bem.

meu configurações atuais de trabalho sshd_config:

[root@hp-bl-05 ~]# grep -vE "^#|^$" /etc/ssh/sshd_config  
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
SyslogFacility AUTHPRIV
LogLevel VERBOSE
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys
HostbasedAuthentication yes
PasswordAuthentication yes
ChallengeResponseAuthentication no
GSSAPIAuthentication no
GSSAPICleanupCredentials no
UsePAM yes
X11Forwarding yes
UseDNS no
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
Subsystem   sftp    /usr/libexec/openssh/sftp-server

Então, seria bom saber se poderíamos mudar algo pequeno no selinux para fazer com que o login do ssh sem senha funcionasse. Alguém pode melhorar a resposta?

    
por 04.05.2016 / 14:47