Eu tenho um servidor Ubuntu, rodando em uma nuvem. Eu criei um usuário ( git
). Na pasta /home/git
, eu criei o .ssh/
dir e o authorized_keys
arquivo.
Mas, quando coloco minha chave pública SSH no authorized_keys
arquivo, o servidor continua a me perguntar a senha.
O que eu fiz errado?
Respostas:
No lado do servidor, o daemon ssh registrará erros
/var/log/auth.log
, portanto verifique esse arquivo para ver o que está sendo relatado.Do lado do cliente, ao estabelecer a conexão, você pode adicionar a
-v
sinalização (ou-vv
ou-vvv
) para aumentar a verbosidade. Você pode identificar seu problema dessa maneira.Aqui estão outras coisas para verificar.
/home/git/.ssh/authorized_keys
é de propriedade degit
./home/git/.ssh/authorized_keys
modo 600 (-rw-------
).Verifique também o
/etc/ssh/sshd_config
arquivo.PubkeyAuthentication
deve ser definido comoyes
AuthorizedKeysFile
diretiva que determina o caminho onde as chaves autorizadas devem estar localizadas. Verifique se está comentado ou no padrão de%h/.ssh/authorized_keys
.fonte
/var/log/auth.log
arquivo? Existe uma maneira de ativar isso?sudo service ssh restart
Verifique também se o diretório inicial do usuário (no seu caso, / home / git) é apenas gravável por você. Tive esse problema uma vez porque meu diretório pessoal era gravável em grupo. /var/log/auth.log disse: "Autenticação recusada: propriedade inadequada ou modos para o diretório / home / chuck". (isso é para garantir que ele não use um arquivo allowed_keys com que alguém que não seja você esteja mexendo!)
fonte
Existem diferentes maneiras de resolver isso: você pode configurar
sshd
(do lado do servidor) oussh
(do lado do cliente) para não usar a autenticação por senha. Desativar a autenticação de senha no servidor torna seu servidor mais seguro, mas você terá problemas se perder a chave.Para criar
ssh
(lado do cliente) usando autenticação pubkey, adicione algumas opções aossh
comando:Se isso funcionar, você pode definir a
PasswordAuthentication=no
opção permanentemente no arquivo de configuração do cliente ssh em todo o/etc/ssh/ssh_config
sistema ou~/.ssh/config
específico do usuário (em detalhes, consulteman ssh_config
).fonte
/etc/ssh/ssh_config
) nos sistemas Debian / Ubuntu já preferemPubkeyAuthentication
e tente isso primeiro, como você verá ao chamarssh
no modo detalhado.Você está usando ~ / .ssh / config em sua máquina local? Eu me deparei com esse problema quando uso a diretiva IdentityFile no arquivo de configuração e aponto para a chave pública. Por exemplo:
fonte
Se sua pasta pessoal estiver criptografada, seu
authorized_keys
arquivo não poderá ser lido antes do login. Você tem que movê-lo para fora de sua casa.Aqui está explicado e como fazer: https://help.ubuntu.com/community/SSH/OpenSSH/Keys#Trou Resolução de Problemas
fonte
Outra coisa a verificar é se há retornos de carro extras em sua chave pública. Segui o conselho acima para revisar o /var/log/auth.log e vi um erro ao ler a chave. A chave tinha aproximadamente duas linhas, em vez de quatro. Havia retornos de carro extras incorporados na chave.
Ao usar o editor vi, use shift-j para unir as linhas e apagar o espaço extra na cadeia de teclas.
fonte
sshd_config
. Bati minha cabeça contra a parede por meia hora. Este foi o meu erro! De alguma forma, adquiri o hábito de encerrar todos os arquivos que eu edito com uma quebra de linha extra. Mesmo com uma chave e um retorno de carro no final , é suficiente para atrapalhar a autorização.Se você tiver várias chaves privadas, use a opção -v no comando ssh connection para verificar se suas outras chaves primárias estão sendo usadas para tentar se conectar. Se não estiverem, diga ao cliente ssh para usá-los com o seguinte comando:
fonte
Você também pode adicionar sua chave ao agente SSH:
fonte
Também pode ser que você esteja ligando
sudo git clone gituser@domain:repo.git
em que a chave ssh dos usuários root não foi adicionada ao
authorized_keys
degituser
fonte
Em uma máquina executando o Ubuntu 18.04.02 LTS, a sugestão de definir permissões de
~/.ssh
600 não funcionou para mim. Eu tive que definir as permissões para 700 e as coisas funcionaram bem.fonte
Eu tinha minhas permissões de arquivo .ssh / directory e allowed_keys corretas, mas encontrei esse problema de "solicitação de senha" devido a um problema autoinduzido diferente.
Eu usei um destaque baseado em mouse e copie / cole para copiar as informações do meu id_rsa.pub local no arquivo allowed_keys no servidor. Isso copiou com êxito os dados como uma única linha, mas havia espaços indesejados no final das linhas visíveis que eram difíceis de ver ao editar o arquivo com o vi. Depois de remover esses espaços indesejados, eu poderia ssh muito bem.
fonte
Então, o que aconteceu comigo é que tenho 2 VMs para acessar da minha máquina local (2 chaves id_rsa.pub e id_rsa2.pub). Percebi que minha conexão ssh está usando id_rsa.pub por padrão para qualquer conexão ssh [email protected]. Resolvi meu problema adicionando um arquivo de configuração e especifique a identidade a ser usada para todos os hosts, como o seguinte:
fonte