Estou tentando configurar a autenticação ssh com arquivos-chave em vez de nome de usuário / senha. O cliente é uma caixa do Windows executando o PuTTY e o servidor é um servidor Ubuntu 12.04 LTS.
Eu baixei o puttygen.exe e ele gerou 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 o seguinte:
---- 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 isso no arquivo ~/.ssh/authorized_keys
no meu servidor (na minha própria pasta pessoal). No PuTTY, em Conexão> SSH> Autenticação, digitei o caminho para a chave privada gerada 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 se o caminho está correto) e execute o perfil, ele diz
Server refused our key
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 a chave nele. Também tentei gerar um par de chaves públicas / privadas no servidor, colocando a chave pública ./ssh/authorized_files
e carregando a privada no PuTTY no meu cliente. Reiniciar o 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 só será útil se a pasta pessoal estiver criptografada, o que não é o caso.
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 me diz que ~/.ssh/
deveria ter 700 e ~/.ssh/authorized_keys
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]
fonte
sshd: error: key_read: uudecode AAAAB3N
erroauth.log
?authorized_keys
arquivo, apenas colei meumykey.pub
arquivo na~/.ssh
pasta e pensei que fosse buscá-lo. Em vez disso, o que eu precisava era executar isso ou editar e colar abaixo outras chaves que possam estar lá.cat mykey.pub >> authorized_keys
. Parece simples agora, mas a lição aprendida é que todas as chaves públicas precisam residirauthorized_keys
não apenas no~/.ssh/
diretório. Alguém, por favor, informe se esta não é uma afirmação correta.Acabei de encontrar esse problema. Apesar de ter a configuração definida corretamente, como já mencionado neste segmento (permissões em allowed_keys etc.), acontece que eu tinha a chave pública no formato errado. Foi na forma de:
O que não estava funcionando. Mas consegui fazê-lo funcionar da seguinte forma:
fonte
ssh-keygen -i -f filenameofwindowsformpub.key
para transformar a chave pública no formato entendido pelo seu servidor OpenSSH.o problema é que o windows usa uma nova linha diferente do linux; portanto, ao copiar a chave do windows para o linux, existe um \ n no final da linha que você não pode ver no linux no editor.
Se você seguir o /var/log/auth.log e tentar fazer login, o erro será o seguinte:
Se você alterar sua chave no Windows para que ela fique em uma única linha sem uma nova linha no final e copiá-la para o Linux, ela deverá funcionar (fez o truque para mim).
fonte
Eu tive que alterar as permissões para o diretório inicial
fonte
Eu tive que alterar as permissões do diretório ~ / .ssh de 770 para 700 e as permissões de arquivo ~ / .ssh / allowed_keys de 660 para 600.
Por algum motivo, a remoção de permissões de grupo corrigiu esse problema para mim.
fonte
O
~/.ssh/authorized_keys
arquivo requer que as chaves estejam todas em uma linha. Se você o adicionou em várias linhas, como na pasta acima, tente ingressar nas linhas.fonte
Aqui está o que funcionou para mim:
Em
puttygen
, depois de ter gerado as chaves, certifique-se de que você copiar e colar as informações do campo superior para ir em seu arquivo authorized_keys. Se você salvar sua chave pública na máquina cliente e abri-la, o texto será diferente do texto na parte superior daputtygen
tela. Novamente, certifique-se de copiar e colar o texto da parte superior daputtygen
tela (depois de criar suas chaves) no seu arquivo allowed_keys, que deve estar localizado~/.ssh
.fonte
Além de todas as respostas acima, copie e cole a chave
puttygen
corretamente!Se você clicar duas vezes no volume da cadeia de teclas para selecioná-la, poderá não obter a cadeia inteira, porque a caixa de texto divide linhas em alguns caracteres, como
+
, por exemplo, para que você não selecione o texto após o+
caractere ( que você não pode ver porque a caixa de texto é muito pequena). Certifique-se de selecionar a sequência inteira manualmente,ssh-rsa
até o final da caixa de texto.fonte
Às vezes, pode ser um problema associado a ter a chave pública em uma linha, essa abordagem parece resolvê-la
fonte
para mim, o problema foi que eu criei
~/.ssh/authorized_keys
usando o root para que o root possuísse. Eu tive quechown sshuser:sshuser ~/.ssh/authorized_keys
então começou a trabalharfonte
Eu também enfrentei esse erro e o resolvi alterando as permissões do arquivo allowed_keys para
600
.fonte
O erro comum é que as pessoas usam o editor de texto (como o Vim) e colam o texto copiado antes de ativar a "inserção" (pressione + i no Vim antes de colar)
fonte
Na verdade, mudei
authorized_keys
a permissão para644
e resolvi o problema.fonte
para depurar o ssh aberto, pode-se usar:
executa o sshd em outra porta 2020. executa o sshd como um programa atual para que a saída seja exibida. se fechado, está fechado.
então tente se conectar.
explicação:
https://www.attachmate.com/documentation/rsit-unix-802/rsit-unix-guide/data/sshd_options_ap.htm
fonte
Eu estava criando os arquivos .ssh e allowed_keys enquanto estava logado como root, o que deu as permissões erradas. Ele também colocou todos os arquivos no diretório raiz.
Alterar a propriedade desses arquivos para o usuário que você deseja não será uma boa prática, por isso refiz minhas etapas e verifiquei se estava conectado como o usuário com o qual desejava utilizar o SSH e criei .ssh e authored_keys novamente.
Instruções para conectar o Win7 ao servidor Xubuntu 15.04: Como criar chaves SSH com Putty para conectar-se a um VPS
fonte