Criei um par de chaves usando puttygen.exe
(o cliente é windows 8). No servidor (Ubuntu 12.04.3 LTS), coloquei minha chave pública em ~/.ssh/authorized_keys
. A chave pública é esta:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAopfM6RHOgnuc4Aftn3t4k5UIAT3StCAbn/vg/IMbphbXadshC+79sIlRq3P4zGzMjFTP4hKnzu6ehLV5lmj/qorq3SKT+bPO5Qrac3VbIlrGvuBFDDjP82I2Hwg3HzlsFTstqk++KToapaTYZ7jENEYyPl2wnzITJnt//+4U1o6juoXTKgdNE02hHnRZyHOV/bnkZyJJCEwJv5U0eXSThQnhmXtUxGT8U0HQNFiXfqIIVllhWiCnyrhhIaKz/CIJNAd2VmzyJzQtJtTQX8aWSNVrZju6Sv2/RncTNvsACdNgjjh/FH8PQXaep00jlJ3MOdsC8vz6VSPFbh6iKy1oLQ== rsa-key-20131231
Portanto, está correto (uma linha, sem comentários, começa com ssh-rsa, etc.)
.ssh
o nível de permissão dir é 700, a permissão do arquivo authorized_keys é 600. O diretório e o arquivo pertencem ao usuário real que tento fazer login.
Quando tento conectar, estou recebendo 'server refused our key'
e o servidor pede a senha. Isso é tudo. Nada é registrado ao /var/log/auth.log
tentar fazer o login com a chave.
Procurei em todos os lugares e todos os artigos e dicas mencionam a configuração de chmod 600 e 700 para o arquivo / diretório e a formatação da chave corretamente. Eu fiz tudo isso ainda recebendo o erro 'recusou nossa chave' e estou sem ideias.
DEBUG
e veja se você pode ver algum problema registrado, se ainda não mostrar que você está acessando, você está procurando no arquivo de log erradoRespostas:
OK, ocorreu um pequeno erro de digitação na minha chave. Aparentemente, ao colar no arquivo, a primeira letra foi cortada e começou com sh-rsa em vez de ssh-rsa.
nrathathaus - sua resposta foi muito útil, muito obrigado, esta resposta é creditada a você :) Eu gostei que você disse e configurei isso em sshd_conf:
Olhando os logs, percebi que o sshd lê a chave corretamente, mas a rejeita por causa do identificador incorreto.
fonte
LogLevel
é definido em/etc/ssh/sshd_config
. O log padrão é, a/var/log/auth.log
menos que definido de outra forma emsshd_config
.i
) o 's' não será cortado.sudo service ssh restart
para que as alterações tenham efeito. Caso contrário, não havia nada em meu arquivo de log de autenticação.Adicionar alguns pensamentos à medida que outras respostas ajudavam, mas não eram exatamente adequadas.
Em primeiro lugar, conforme mencionado na resposta aceita, edite
e definir o nível de registro:
Em seguida, tente autenticar e, quando falhar, procure o arquivo de log:
Haverá erros que você está procurando.
fonte
/var/log/
existe, massecure
não existe. Como faço para descobrir em qual log está sendo gravado?/var/log/auth.log
, pelo menos no meu Ubuntu 14.04.1.secure
arquivo antes de ler os comentários do @axel aqui.No meu caso, tive que alterar as permissões de / home / user de 0755 para 0700 também.
fonte
No meu caso, é um problema de permissão.
Mudei o nível de registro para
DEBUG3
, e/var/log/secure
vejo esta linha:Pesquisei no Google e encontrei esta postagem:
https://www.daveperrett.com/articles/2010/09/14/ssh-authentication-refused/
Basicamente, ele me diz para:
w
permissão de grupo do diretório inicial do usuário700
do.ssh
dir600
doauthorized_keys
arquivo.E isso funciona.
Outra coisa é que mesmo eu habilitado o login de root, não consigo
root
trabalhar. É melhor usar outro usuário.fonte
Executando o Windows 8.1, encontrei o
server refused our key
problema.Seguindo o guia: https://winscp.net/eng/docs/guide_windows_openssh_server Foi fácil fazer a conexão usando o login do Windows
username
epassword
. No entanto, autenticando com ousername
em combinação com aprivate key
, a resposta foiserver refused our key
.Fazer funcionar com uma chave pública se resumia às permissões no arquivo:
C:\ProgramData\ssh\administrators_authorized_keys
Esta é uma página útil: https://github.com/PowerShell/Win32-OpenSSH/wiki/Trou troubleshooting - Steps
Pare os dois serviços OpenSSH e abra um
command prompt
comadmin permissions
. Então corra:C:\OpenSSH-Win32>c:\OpenSSH-Win32\sshd.exe -ddd
Nota: especifique o caminho completo para o exe, caso contrário
sshd
reclama. Isso cria um ouvinte de conexão de uso único. O-ddd
nível 3 é detalhado.Depois de fazer uma conexão, a varredura dos registros revelou:
Tive que criar o arquivo:
C:\ProgramData\ssh\administrators_authorized_keys
E copiar opublic key
texto nele, por exemplo:ssh-rsa AAAA................MmpfXUCj rsa-key-20190505
E depois salvar o arquivo. Salvei o arquivo comoUTF-8
com oBOM
. Não testeiANSI
.Em seguida, executando a linha de comando única novamente, nos logs mostrados:
S-1-5-11
é o nome dado aoSystem
.Para corrigir o problema
Bad permissions
, clique com o botão direito do mouse noadministrators_authorized_keys
arquivo, vá para oSecurity Tab
, clique noAdvanced
botão e remova as permissões herdadas. Em seguida, exclua tudo,Group or user names:
exceto o nome de usuário de login do Windows, por exemplo:YourMachineName\username
As permissões para issousername
devem serRead Allow
,Write Deny
todo o resto está desmarcado. O proprietário do arquivo também deve serYourMachineName\username
Isso resolveu o problema.
Outros links úteis:
Baixe OpenSSH-Win32.zip em: https://github.com/PowerShell/Win32-OpenSSH/releases
Exemplo C # de como usar o WinSCPnet.dll para fazer uma conexão ao servidor OpenSSH: https://winscp.net/eng/docs/library#csharp
Aqui está o snippet de código para fazer uma conexão usando
WinSCPnet.dll
:Substitua
SshHostKeyFingerprint
eSshPrivateKeyPath
com seus próprios valores.Editar: captura de tela adicionada das permissões do arquivo administrators_authorized_keys:
Quando
OpenSSH SSH Server
está funcionando como um serviço, então sóSystem
deve ter permissão. No entanto, se estiver executando asshd.exe
partir do prompt de comando, o usuário atual deve ser o único listado (permissão de leitura, negação de gravação).fonte
Estou adicionando esta resposta para ajudar qualquer pessoa, como eu, que passou horas vasculhando a internet sem sucesso.
A PASTA DE SUA CASA PODE SER ENCRIPTADA.
Ou qualquer pasta em que seu arquivo "authorized_keys" está aninhado. Cara, isso teria me economizado muito tempo. Para verificar, vá realizar
no diretório cujo status de criptografia você deseja determinar. Se a pasta contiver uma pasta chamada ".encryptfs", a resposta é sim, essa pasta está criptografada. Isso impedirá que você acesse o arquivo "authorized_keys" contendo a chave ssh pública necessária para verificação.
Para corrigir isso, coloque o arquivo "authorized_key" em uma árvore de diretório que não contenha criptografia.
fonte
A solução simples que encontrei foi mover o
authorized_keys
arquivo do diretório oculto .ssh e colocá-lo no diretório ssh do sistema:Assim que fiz isso funcionou sem problemas.
fonte
tendo o mesmo problema no windows server 2008 r2 e explorado muito para resolver, finalmente fiz isso seguindo:
abra C: \ Arquivos de programas (x86) \ OpenSSH \ etc \ sshd_config com o teclado de texto ou qualquer outro editor de texto
remova o comentário das seguintes linhas, depois de removê-las devem ter a seguinte aparência:
salve-o e tente fazer o login com a chave privada agora. diverta-se.
fonte
Graças ao nrathaus e à
/var/log/auth.log
investigação no nível de depuração, vem o seguinte.Outro motivo é que seu diretório pessoal pode ter permissões diferentes de 755.
fonte
Eu encontrei esse problema hoje e meu problema era que, ao copiar a chave pública do arquivo, novos caracteres de linha também eram incluídos. Você pode usar ": set list" no vim para ver todas as novas linhas ocultas e certifique-se de deletar todas as novas linhas, exceto a última. Além disso, faltava "ssh-rsa" na minha chave no início. Certifique-se de ter isso também.
fonte
Para aqueles que receberam esse erro do Windows Server, recebi o mesmo erro e era um problema de conta de usuário. Em muitas organizações, a política de grupo para administradores pode não permitir a configuração do servidor SSH e das conexões. Com esse tipo de configuração, isso deve ser feito a partir da conta de administrador local. Pode valer a pena verificar se você confirmou que não há erros de digitação na chave pública.
fonte
No meu caso, tive que desabilitar o SELinux no Centos6.6 para fazê-lo funcionar :)
Edite / etc / selinux / config e defina o seguinte e reinicie o host.
BTW ... esqueci de mencionar que tive que definir o LogLevel = DEBUG3 para identificar o problema.
fonte
Eu tive o mesmo erro no solaris, mas encontrei em /var/adm/splunk-auth.log o seguinte:
Em / etc / shadow a conta foi bloqueada:
Removida a parte "* LK *":
e eu poderia usar ssh com authorized_keys como de costume.
fonte
No meu caso, foi causado por (
/etc/ssh/sshd_config
):Alterou para
yes
, reiniciou o serviço e entrou normalmente.fonte
Resolvi este problema, o puttygen é um software de terceiros, a chave ssh gerada por ele não era usada diretamente, então você deve fazer algumas alterações. Por exemplo, é assim
Omiti alguns dos alfabetos do meio, substituídos por *, se não, StackOverflow me disse que o formato do código está errado, não me deixe postar。
esta é a minha chave ssh gerada por puttygen, você deve mudar para esta
No meu caso, excluí alguns comentários, como
e adicione
ssh-rsa
no início, adicioneyourname@hostname
no final. nota : não exclua==
no último e você deve alterar "seunome" e "nome do host" para você, No meu caso, éuaskh@mycomputer
, seunome é que você deseja logar no seu vps. quando todas essas coisas forem feitas, você poderia fazer o upload público tecla para a casa de uaskh~/.ssh/authorized_keys
porcat public-key >> ~/.ssh/authorized_keys
, em seguida,sudo chmod 700 ~/.ssh
sudo chmod 600 ~/.ssh/authorized_keys
em seguida, você deve modificar o / etc / ssh / sshd_config,RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
meu sistema operacional é CentOS 7, Esta é a minha primeira vez para anwser pergunta, eu vou tentar o meu esforço para fazer, Obrigado!fonte
Oh meu Deus, passei dias tentando consertar isso. Então aqui está o que funcionou para mim. Voltei para a pasta root assim: cd / root / mkdir .ssh cd .ssh chmod 700 .ssh nano -w authorized_keys serviço ssh restart Então eu usei root para fazer login via Putty e funcionou. portanto, tente fazer o mesmo com o usuário que deseja usar na massa.
fonte
Estou usando um arquivo PUTTYgen com psftp e encontrei este problema no meu Windows Server quando fomos solicitados a criar novas chaves para um cliente. O arquivo private_key_name .ppk e o arquivo open_ssh.txt devem estar no mesmo diretório para que a conexão funcione.
fonte
No meu caso, a casa no nfs era 777, precisava ser 750. Isso resolveu o problema.
fonte
Eu tenho esse problema em que o sshd só lê
authorized_keys2
.Copiar ou renomear o arquivo resolveu o problema para mim.
PS Estou usando o Putty do Windows e o PuTTyKeygen para a geração de pares de chaves.
fonte
Eu estava enfrentando um problema semelhante ao tentar fazer logon através do Mobaxterm. A chave privada foi gerada por meio de puttygen. Regenerar a chave ajudou no meu caso.
fonte
Ao usar o Cpanel, você pode verificar se a chave está autorizada em
Acesso SSH >> Chaves públicas >> Gerenciar >> Autorizar ou desautorizar.
fonte
se você receber este erro em
/var/log/secure
isso significa que sua chave está tendo espaço, se você gerou a chave por meio de puttgen ao visualizar o
.ppk
arquivo, ela terá a seguinte aparência:e quando você tentar colá-lo irá obter um erro na leitura da chave, então tente editar a chave e torná-la uma linha e tente
isso deve se parecer com algo
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAoo3PFwX04NFG+rKz93l7em1BsUBzjHPMsswDal74MLaJyhQD0pE23NS1izahbo1sJGnSJu2VJ//zxidSsba6xa6OvmeiKTwCz0E5GMefdGVdpdbTlv99qjBl1+Nw1tDnHIC0+v9XmeZERQfCds9Kp1UivfReoYImntBCgLtNyqRYrSu8csJCt7E1oY8QK6WP1vfYgAQ2taGyS9+g7FHyyf5VY2vH3oWzzbqzxjsSLAv3zEQSm1LzSw9Pvc8iwasFyUMBOPj31CKQYTXyX8KpJTr0Zb7oqMauBE5LVwxZhlcJHbj0FsMbF/+GRjvgexymCi3bHmwGQ6FEADNd0RkhdQ== username@domainname
fonte
O que funciona para mim é:
Desta vez funciona para mim. Mas não sei por que ele não tem as informações do meu arquivo-chave no início, quando a instância foi iniciada. Verifique também este link https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Trou troubleshootingInstancesConnecting.html# Trou troubleshootingInstancesConnectingMindTerm
fonte
No meu caso o problema era o seguinte, durante a geração das chaves ssh mudei intencionalmente os diretórios padrão das chaves. Portanto, em vez de usar o local ~ / .ssh / authorized_keys que escolhi usar
~/home/user/folder1/.ssh/authorized_keys
, para essas alterações funcionarem, eu deveria fazer as mesmas alterações do novo local neste arquivo/etc/ssh/sshd_config
. Mas, até eu perceber isso, já tentei várias soluções sugeridas por outras pessoas aqui, incluindo definir a permissão da pasta pessoal para700
e o diretório .ssh para600
.fonte
Etapas para corrigir a montagem Root (que segui enquanto alterava a permissão com a pasta ec2-user e o arquivo de chave de autorização) Este processo será semelhante a desanexar e anexar um pen-drive
Abaixo estão alguns outros cenários que você pode encontrar -
Passos para corrigi-los
Agora, depois de fazer login no novo ec2, execute as etapas abaixo
sudo mount /dev/mapper/rootvg-home /mnt
Agora corrigimos nosso volume com o problema que enfrentamos. Principalmente, pode ser um problema de permissão do usuário - Umount / mnt para desmontá-lo - Agora vá para o console e aponte para o volume anexado à nova instância e desanexe - Depois de desconectado, conecte-o ao seu novo volume como / dev / sda1
Com isso dito, você deve conseguir fazer o login com sucesso
fonte
Como minha experiência, sugiro que você deve gerar chaves do putty, não deve gerar do lado do linux. Porque a chave será o formato PEM antigo. Enfim, apenas minha sugestão. Eu segui os passos abaixo e trabalhei bem comigo e com minha equipe.
Gere um par de chaves com PuTTYGen.exe em seu local (tipo: RSA, comprimento: 2048 bits).
Salve a chave privada / pública como arquivos " id_rsa.ppk / id_rsa.pub " em seu local.
Crie o arquivo "authorized_keys" no seu local, então insira a chave pública em " id_rsa.pub " para " authorized_keys ". Lembre-se de que o conteúdo deve começar com " ssh-rsa " e apenas uma linha .
Execute estes comandos:
chmod 700 .ssh
chmod 600 .ssh / authorized_keys
chown $ USER: $ USER .ssh -R
Teste sua configuração de conexão carregando a chave privada " id_rsa.ppk " no perfil do PuTTY.exe e, em seguida, clique em abrir (coloque sua senha, se tiver).
fonte
verifique sua chave, ela deve ser uma chave rsa (id_rsa.pub) hoje e não mais uma chave dss (id_dsa.pub), use puttygen 0.70 e escolha RSA no tipo de chave a ser gerada, substitua a chave pública no host ~ /. ssh / authorized_keys
fonte
Depois de adicionar a chave, faça login como
ec2-user
se estivesse usando uma máquina Amazon Linuxfonte
Outro motivo pode ser BOM UTF-8 no
authorized_keys
arquivo.fonte