Configurando uma máquina para usar uma chave sobre SSH

1

Estou tentando configurar uma chave entre minha máquina Ubuntu e meu servidor da Web para que eu possa fazer SSH nela sem precisar digitar uma senha a cada vez.

Eu segui o tutorial encontrado aqui - link - à risca.

Enquanto tudo parece funcionar, quando tento acessar o servidor SSH na próxima vez que ele me pede uma senha.

Minha primeira pergunta é que o motivo que estou fazendo é para que eu possa SSH em um site específico no meu servidor, então eu configurei tudo isso no servidor usando o nome de usuário associado ao site (neste caso tosbourn) este direito ou eu deveria ter usado root no servidor?

A segunda pergunta é que, porque na minha máquina meu nome de usuário é diferente (é toby) Eu acho que isso poderia impedi-lo de funcionar? Estou correto nesta suposição ou isso não importa?

Como estão os diretórios home na máquina local e no servidor, tenho .ssh neles e copiei o arquivo necessário e renomei-o para authorized_keys (e keys2)

Qualquer ajuda seria muito apreciada.

    
por Toby 27.11.2009 / 22:07

5 respostas

3

Uma coisa a verificar é a permissão no arquivo de chaves no servidor. Eu descobri que sshd não usará o arquivo authorised_keys , a menos que as permissões sejam muito restritas.

chmod 600 ~/.ssh/authorized_keys

deve fazer isso.

BTW, estou usando chaves geradas pelo PuTTY para acessar um servidor Linux (Slackware) e tudo está bem.

    
por 28.11.2009 / 01:46
1
  • Usar um usuário normal é bom e realmente preferido. Você pode até considerar a desativação de logons raiz no servidor.
  • Se os nomes dos usuários diferirem entre as máquinas, você deverá especificar o nome de usuário na linha de comando ssh (ou no arquivo ~/.ssh/config ): ssh -l username hostname .

No seu servidor, verifique os logs do sistema em /var/log . Não tenho certeza de onde as tentativas de login com falha foram registradas em sua máquina, mas procure os arquivos de log que foram alterados recentemente após um login com falha e você deve poder criar algo.

Se isso não ajudar, tente obter uma colocação detalhada de ssh: ssh -v -l username hostname . A saída é difícil de ler e entender, mas pode lhe dar uma pista sobre o que pode ter dado errado.

Também é sempre bom verificar se a chave pública que você colocou no seu servidor não foi parar em várias linhas. Uma chave pública = uma única linha no arquivo authorized_keys.

Por fim, você tem certeza de que os logins de chave pública estão habilitados em seu servidor?

    
por 27.11.2009 / 22:19
1

Eu tive problemas com as teclas em um servidor rodando o Ubuntu. Uma maneira de testar é isso no servidor:

sudo /usr/sbin/sshd -d -p [some port]

E, em seguida, conecte-se usando

ssh -v server.url -p [same port]

Isso deve fornecer informações de depuração em ambos os lados. O processo do sshd provavelmente será mais interessante porque lhe dirá por que está rejeitando a chave.

Minha solução foi desistir e mover as chaves autorizadas para / etc / ssh / users / [nome de usuário] / authorized_keys e, em seguida, alterar a configuração de AuthorizedKeysFile do / etc / ssh / sshd_config:

AuthorizedKeysFile /etc/ssh/users/%u/authorized_keys

É uma espécie de solução de força bruta, mas pode resolver o seu problema.

    
por 28.11.2009 / 00:10
0

Eu estava falando com os hosts e parece que a chave que eu gero precisa ser feita em Putty em uma máquina windows, a convertida para funcionar na minha máquina Ubuntu. Isso não parece certo, mas eu vou dar uma chance e ver o que acontece!

Mais uma vez, aplaude Manni pela resposta.

    
por 27.11.2009 / 23:23
0

No cliente:

ssh-keygen

(sem frase secreta)

e depois:

ssh-copy-id username@server

Isso deve configurar o login com chave.

    
por 30.11.2009 / 18:12