SSH sem senha

5

Não consigo usar ssh sem senha por algum motivo em uma nova caixa do CentOS.

Eu tentei seguir estes guias:

Mas também não estão funcionando. Eu chequei meu arquivo /etc/ssh/sshd_config . PubkeyAuthentication yes foi originalmente comentado, então eu descomentei essa linha e reiniciei o sshd, mas ainda assim não deu certo. Alguma idéia de qualquer outra coisa que possa estar faltando?

Estou tentando ssh do servidor A para o servidor B como root. Assim, logado como root em uma caixa, então ssh para o próximo como root sem ser solicitado por uma senha.

UPDATE

Eu corri um ssh -v ... , mas não consigo copiar / colar aqui. Tudo parecia bom até esta linha:

debug1: Next authentication method:  gssapi-with-mic
debug1: Unspecified GSS failure.  Minor Code may provide more information
Unknown code krb5 195
    
por Wild Bill 16.02.2012 / 01:16

5 respostas

4

Um pequeno tutorial para autenticação baseada em chave pública para o CentOS / Red Hat / etc ...

No cliente SSH:

ssh-keygen # Accept all defaults, do not enter a password.
ssh-copy-id USER@SERVER_IP
restorecon -R ~/.ssh

No servidor SSH:

# Login to the server normally (with password)
restorecon -R ~/.ssh

A autenticação baseada em chave pública deve funcionar agora.

    
por 16.02.2012 / 01:39
2

Esses problemas (que são geralmente relacionados a permissões) são muito mais facilmente depurados do lado do servidor. Eu recomendo que você inicie outro sshd no modo de depuração com: /usr/sbin/sshd -d -p 2222 que iniciará outro sshd na porta 2222, então execute ssh -p 2222 user@sshserver no lado do cliente. Veja o que sai do sshd quando seu cliente tenta autenticar.

Os problemas de permissões não precisam ser apenas /home/$USER/.ssh . Também pode haver um problema com / , /home ou /home/$USER . Se algum deles for de grupo, pode ser um problema.

Outro problema comum é que você cola mal e coloca quebras de linha no meio da sua chave no arquivo authorized_keys

    
por 16.02.2012 / 03:24
1
serverA# ls -lah /root
serverA# ls -lah /root/.ssh
serverA# selinuxenabled 
serverA# echo $?

serverB# ls -lah /root
serverB# ls -lah /root/.ssh
serverB# senlinuxenabled
serverB# echo $?

Se isso não mostrar o problema, tente o seguinte. ServerA é o cliente e serverB o servidor ssh.

No serverB, edite o arquivo / etc / ssh / sshd_config. Encontre a linha que parece:

LogLevel INFO

Altere para:

LogLevel VERBOSE

Então:

serverB# /etc/init.d/sshd restart

no servidorA:

serverA# ssh -vvv root@serverb

Você pode agora reenviar o arquivo / var / log / secure no servidorB para dicas.

Como dica final, por favor, revise:

link

    
por 16.02.2012 / 04:45
1

Verifique suas permissões, elas devem ser

drwx ------

para o diretório .ssh e

-rw -------

para o seu arquivo authorized_keys .

Então, para definir as permissões corretamente, tente isto:

chmod go-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
    
por 16.02.2012 / 05:45
0

Se você tem o SELinux ativado, então este é um problema comum ...

Execute o seguinte no servidor SSH:

restorecon -R /home/$USER/.ssh

ou, para root:

restorecon -R /root/.ssh

'Nuff disse ...

    
por 16.02.2012 / 01:23

Tags