Estou tentando configurar a autenticação do ssh com arquivos de chave em vez do nome de usuário / senha. O cliente é uma caixa do Windows que executa o PuTTY e o servidor é um servidor Ubuntu 12.04 LTS.
Eu baixei puttygen.exe e tive que gerar um par de chaves. Em /etc/ssh/sshd_config
eu tenho esta linha:
AuthorizedKeysFile %h/.ssh/authorized_keys
e no arquivo de chave pública do meu cliente diz isso:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "[email protected]"
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAr3Qo6T5XU06ZigGOd3eKvfBhFLhg5kWv8lz6
qJ2G9XCbexlPQGanPhh+vcPkhor6+7OmB+WSdHeNO652kTofnauTKcTCbHjsT7cJ
GNrO8WVURRh4fabknUHPmauerWQZ6TgRPGaz0aucU+2C+DUo2SKVFDir1vb+4u83
[email protected]
---- END SSH2 PUBLIC KEY ----
Copiei a parte de "ssh-rsa AAA" para "[email protected]" e coloquei no arquivo ~/.ssh/authorized_keys
no meu servidor (na minha própria homefolder). No PuTTY em Conexão > SSH > Auth Eu digitei o caminho para a chave privada que gerou no meu cliente e salvei as configurações da sessão.
Eu reiniciei o servidor ssh com
sudo service ssh restart
Agora, se eu carregar o perfil no PuTTY (verifiquei que a chave privada ainda está em Connection > SSH > Auth e que o caminho está correto) e execute o perfil, ele diz
Server refused our key
Eu tentei colocar a chave pública em um arquivo no diretório ./ssh/authorized_keys/
, mas isso não ajudou, então usei ./ssh/authorized_keys
como arquivo , colando o arquivo chave nele. Eu também tentei gerar um par de chaves privada / pública no servidor, colocando a chave pública em ./ssh/authorized_files
e carregando a privada em PuTTY no meu cliente. A reinicialização do servidor também não ajudou.
Descobri que o erro pode ser resolvido colocando a chave em um local fora da pasta pessoal do usuário, mas isso é útil apenas se a pasta principal estiver criptografada, o que não é possível.
Também tentei gerar uma chave de 4096 bits, pensando que talvez 1024 fosse muito curto.
Como posso fazer isso funcionar? Obrigado!
EDITAR:
Ok, /var/log/auth.log
disse:
sshd: Authentication refused: bad ownership or modes for directory /home/vorkbaard/.ssh
O Google informa que ~/.ssh/
deve ser 700 e ~/.ssh/authorized_keys
deve ser 600, então eu fiz isso. Agora /var/log/auth.log
diz:
sshd: error: key_read: uudecode AAAAB3N [etc etc etc until about 3/4 of my public key]