ssh client pede senha por padrão; como configurá-lo para usar a chave?

1

Eu tenho as duas: autenticação de senha e pubkey disponível no meu servidor. Eu posso logar do cliente com a chave especificada explicitamente:

ssh user@host -i id_rsa

Quando eu não especifico o keyfile, ele pede uma senha. Mas eu gostaria de entrar com keyfile por padrão.

Eu encontrei uma dica, que eu posso colocar algo em ~ / .ssh / config. Então eu especifiquei algo assim:

Host xxx
    IdentityFile ~/.ssh/id_rsa
    IdentitiesOnly yes
    User uuu

A configuração é interpretada - o usuário 'uuu' é usado, mas o arquivo de chaves ainda é ignorado. Como fazer com que o ssh prefira por padrão?

    
por ardabro 21.11.2016 / 21:36

4 respostas

2

Se você tiver um diretório ~/.ssh e uma chave privada id_rsa no seu ~/.ssh pertencente a você com o modo de arquivo 0600 ( -rw------- ), então ssh o usará automaticamente e solicitará uma senha apenas se a autenticação de chave pública falhar. Verifique se todas essas condições foram atendidas. A opção -i é normalmente usada quando você precisa se autenticar com uma chave diferente .

    
por 21.11.2016 / 22:45
1

Seu arquivo de configuração deve ser

Host xxx
  User user
  IdentityFile ~/.ssh/id_rsa

Você precisa verificar o nível dos arquivos:

~/.ssh/id_rsa : rwx------

No host remoto:

  • /home/user : sem direitos de gravação para grupo e outros
  • /home/user/.ssh : rwx------

Você pode verificar o arquivo de log no host remoto e pode ver algumas mensagens de erro:

tail -f /var/log/auth.log

espero que ajude

    
por 21.11.2016 / 22:42
0

Supondo que você tenha um servidor com SSH e um cliente de onde deseja se conectar ao servidor, é necessário criar as chaves pública e privada na máquina cliente e copiar a chave pública no servidor.

Antes disso, você precisa verificar onde o seu servidor SSH está procurando por chaves de clientes autorizados. Você precisa verificar seu arquivo de configuração do SSH Server / etc / ssh / sshd_config e localizar a próxima linha:

AuthorizedKeysFile      .ssh/authorized_keys

Isso informa que o servidor pesquisará no arquivo chamado authorized_keys de cada diretório inicial do usuário, na pasta .ssh , as chaves públicas autorizadas para o login desse usuário.

Agora, no seu cliente, como você disse que já está usando a chave SSH gerada no cliente, é necessário copiar o conteúdo de sua chave pública no arquivo authorized_keys do usuário no qual deseja fazer login o servidor.

Para simplificar isso, as etapas são:

  • Pesquise a diretiva AuthorizedKeysFile em /etc/ssh/sshd_config no servidor.
  • Crie as chaves privadas e públicas no cliente (você já fez isso).
  • Copie o conteúdo da chave pública do seu cliente para o arquivo authorized_keys do usuário que você deseja efetuar login no servidor. Se você quiser fazer o login com o usuário username , você precisa copiar a chave pública para o arquivo /home/username/.ssh/authorized_keys (criá-lo se não existir).

Espero que isso ajude.

    
por 21.11.2016 / 23:25
0

Obrigado a todos. Parece que isso foi um problema com o ssh-agent. Depois de reiniciar tudo está OK. Eu acho que ele não atualizou algumas configurações quando os métodos de login aceitos foram alterados no servidor.

    
por 23.11.2016 / 13:26

Tags