Não é possível ssh com chave pública

2

Eu tenho dois hosts Linux RH, mesmo construindo tudo, chame-os de A & B.

Eu posso ssh felizmente de A para B usando uma chave pública, mas eu simplesmente não consigo logar no A de B (ou da minha área de trabalho usando putty & pageant para esse assunto) sem ser solicitada uma senha. Parece que deve haver algo um pouco diferente com A, mas não consigo entender o quê.

O arquivo authorized_keys e as permissões do diretório .ssh estão corretos & PubkeyAuthentication é 'sim' em sshd_config.

Há mais alguma coisa que possa estar faltando ou qualquer coisa que possa ter sido alterada da criação de base que faria com que isso acontecesse? Eu verifiquei e verifiquei novamente as chaves acima e regeneradas várias vezes. Eu também posso ver que ele tenta usar a chave ao executar ssh -v A, mas falha.

    
por delronhubbard 16.12.2014 / 17:01

3 respostas

1

Você precisa depurar isso no servidor, se puder. Se você tiver acesso root no servidor, tente se tornar root e, em seguida, execute:

/path/to/sshd -ddd -p 1022

Isso executará uma instância do servidor SSH que escutará na porta 1022, aceitará uma conexão e imprimirá as informações de depuração no seu terminal. Execute seu cliente como de costume, exceto especificar a porta 1022 como a porta:

ssh -p 1022 user@A

As informações de depuração impressas pelo servidor deixarão claro por que você está sendo rejeitado.

    
por 16.12.2014 / 17:54
1

I can ssh happily from A to B using a public key, but I simply cannot login to A from B...without being prompted for a password.

Para ir de X para Y, a chave pública de X tem que estar no arquivo authorized_keys de Y

Execute o comando ssh para ir de A a B, onde ele solicita uma senha, por exemplo,

$ssh user@host

Então faça Ctrl-C, então você só sabe que tem o comando ssh certo, então ele pede uma senha.

Mas, desta vez, altere ssh para ssh-copy-id

Ele solicitará uma senha. Digite a senha. Agora saia.

Da próxima vez que você fizer isso, ele deverá entrar automaticamente.

Para que isso funcione, você tem que ter chaves em A

Se você ainda não tiver chaves em A, execute $ssh-keygen

Em seguida, faça ssh-copy-id conforme descrito.

Ao conectar de A a B, todos os comandos mencionados aqui, ssh ou ssh-copy-id ou ssh-keygen, são executados a partir de A

.     
por 16.12.2014 / 18:02
0

Por favor, verifique se o iptables foi configurado para permitir acesso ssh de entrada

 iptables --list

Ele listará as regras de iptable existentes

Você pode permitir o SSH recebido apenas de uma rede específica com o seguinte comando

iptables -A INPUT -i eth0 -p tcp -s 192.168.200.0/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

Espero que isso ajude!

    
por 16.12.2014 / 17:15

Tags