Putty: Getting Server recusou nossa chave Erro

86

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.logtentar 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.

PawelRoman
fonte
2
Você disse ao Putty para usar a mesma chave? você está logando com o mesmo usuário? esta é uma instalação SSH padrão ou você modificou o sshd_config?
Noam Rathaus
Puttygen gera 3 chaves: privada, pública e sua própria versão de chave privada com extensão .ppk. É claro que estou usando .ppk com putty.exe e colei a chave pública em .ssh / authorized_keys no servidor. É a instalação / configuração SSH padrão, não modifiquei o sshd_config.
PawelRoman
BTW, eu tive que criar o diretório .ssh e auhtorized_keys, porque é uma nova instalação do Ubuntu e não estava lá. Talvez isso tenha algo a ver com o problema?
PawelRoman
3
Certifique-se de que sshd_config esteja configurado para usar chaves públicas, pode não ser
Noam Rathaus
2
Você vê alguma coisa em /var/log/auth.log? aumente o LogLevel dos logs do SSH para DEBUGe veja se você pode ver algum problema registrado, se ainda não mostrar que você está acessando, você está procurando no arquivo de log errado
Noam Rathaus

Respostas:

61

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:

LogLevel DEBUG3

Olhando os logs, percebi que o sshd lê a chave corretamente, mas a rejeita por causa do identificador incorreto.

PawelRoman
fonte
7
Exatamente o mesmo problema :)
Trefex
Quais registros você verificou e onde estão? Qual é o identificador, você está falando?
user1046647
3
@ user1046647 LogLevelé definido em /etc/ssh/sshd_config. O log padrão é, a /var/log/auth.logmenos que definido de outra forma em sshd_config.
Axel Kemper
3
Se você abrir authorized_key no vim e imediatamente tentar colar o primeiro 's' do 'ssh_rsa "é tratado como comando do vim, após o qual o vim mudará para o modo de inserção e o texto restante será colado. Se você entrar no modo de inserção antes colar (por exemplo, usar i) o 's' não será cortado.
Pawel
1
! sudo service ssh restartpara que as alterações tenham efeito. Caso contrário, não havia nada em meu arquivo de log de autenticação.
hogan
30

Adicionar alguns pensamentos à medida que outras respostas ajudavam, mas não eram exatamente adequadas.

Em primeiro lugar, conforme mencionado na resposta aceita, edite

/etc/ssh/sshd_config

e definir o nível de registro:

LogLevel DEBUG3

Em seguida, tente autenticar e, quando falhar, procure o arquivo de log:

/var/log/secure

Haverá erros que você está procurando.

Ranty
fonte
/var/log/existe, mas securenão existe. Como faço para descobrir em qual log está sendo gravado?
aliteralmind
11
O padrão é /var/log/auth.log, pelo menos no meu Ubuntu 14.04.1.
Axel Kemper
SIM! obrigado! Acontece que meu arquivo de chave do pub tinha um \ n invisível no final
alextsil
1
Linux / Ubuntu é tão frustrante. Gastei uns bons 20 minutos tentando descobrir por que não havia nenhum securearquivo antes de ler os comentários do @axel aqui.
JYelton
17

No meu caso, tive que alterar as permissões de / home / user de 0755 para 0700 também.

Atif
fonte
1
esta foi a causa e solução para mim
pstanton
4
e para mim mesmo, a pasta 700 e as chaves autorizadas 600 resolveram o problema
David Soussan
1
Para mim da mesma forma, chmod 700 na pasta .ssh e chmod 600 em authorized_keys resolveram o problema
Iwo Kucharski
A pasta .ssh 700 e as chaves autorizadas 600 consertaram isso para mim.
Deep-B de
13

No meu caso, é um problema de permissão.

Mudei o nível de registro para DEBUG3, e /var/log/securevejo esta linha:

Authentication refused: bad ownership or modes for directory

Pesquisei no Google e encontrei esta postagem:

https://www.daveperrett.com/articles/2010/09/14/ssh-authentication-refused/

chmod g-w /home/your_user
chmod 700 /home/your_user/.ssh
chmod 600 /home/your_user/.ssh/authorized_keys

Basicamente, ele me diz para:

  • livrar-se da wpermissão de grupo do diretório inicial do usuário
  • alterar permissão para 700do .sshdir
  • alterar a permissão para 600do authorized_keysarquivo.

E isso funciona.

Outra coisa é que mesmo eu habilitado o login de root, não consigo roottrabalhar. É melhor usar outro usuário.

WesternGun
fonte
Esta resposta foi subvotada. As permissões ignoradas do diretório inicial podem custar um dia inteiro para solucionar o problema.
chingNotCHing de
Obrigado por votar em mim. Eu apenas compartilho o que tenho.
WesternGun de
6

Executando o Windows 8.1, encontrei o server refused our keyproblema.

Seguindo o guia: https://winscp.net/eng/docs/guide_windows_openssh_server Foi fácil fazer a conexão usando o login do Windows usernamee password. No entanto, autenticando com o usernameem combinação com a private key, a resposta foi server 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 promptcom admin permissions. Então corra: C:\OpenSSH-Win32>c:\OpenSSH-Win32\sshd.exe -ddd

Nota: especifique o caminho completo para o exe, caso contrário sshdreclama. Isso cria um ouvinte de conexão de uso único. O -dddnível 3 é detalhado.

Depois de fazer uma conexão, a varredura dos registros revelou:

debug1: trying public key file __PROGRAMDATA__/ssh/administrators_authorized_keys
debug3: Failed to open file:C:/ProgramData/ssh/administrators_authorized_keys error:2
debug1: Could not open authorized keys '__PROGRAMDATA__/ssh/administrators_authorized_keys':
        No such file or directory

Tive que criar o arquivo: C:\ProgramData\ssh\administrators_authorized_keys E copiar o public keytexto nele, por exemplo: ssh-rsa AAAA................MmpfXUCj rsa-key-20190505 E depois salvar o arquivo. Salvei o arquivo como UTF-8com o BOM. Não testei ANSI.

Em seguida, executando a linha de comando única novamente, nos logs mostrados:

debug1: trying public key file __PROGRAMDATA__/ssh/administrators_authorized_keys
debug3: Bad permissions. Try removing permissions for user: S-1-5-11 on file C:/ProgramData/ssh/administrators_authorized_keys.
        Authentication refused.

S-1-5-11é o nome dado ao System.

Para corrigir o problema Bad permissions, clique com o botão direito do mouse no administrators_authorized_keysarquivo, vá para o Security Tab, clique no Advancedbotã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 isso usernamedevem ser Read Allow, Write Denytodo 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:

static void WinSCPTest() {
    SessionOptions ops = new SessionOptions {
        Protocol = Protocol.Sftp, 
        PortNumber = 22,
        HostName = "192.168.1.188", 
        UserName = "user123",
        //Password = "Password1",
        SshHostKeyFingerprint = @"ssh-rsa 2048 qu0f........................ddowUUXA="
    };

    ops.SshPrivateKeyPath = @"C:\temp\rsa-key-20190505.ppk";

    using (Session session = new Session()) {
        session.Open(ops);
        MessageBox.Show("success");
    }
}

Substitua SshHostKeyFingerprinte SshPrivateKeyPathcom seus próprios valores.

Editar: captura de tela adicionada das permissões do arquivo administrators_authorized_keys: insira a descrição da imagem aqui

Quando OpenSSH SSH Serverestá funcionando como um serviço, então só Systemdeve ter permissão. No entanto, se estiver executando a sshd.exepartir do prompt de comando, o usuário atual deve ser o único listado (permissão de leitura, negação de gravação).

Repugnância
fonte
3
Você fez muitas coisas aqui que ajudaram. Primeiro executando o sshd com o sinalizador de depuração na linha de comando. Os logs do Windows Service System mostravam muito pouco e eram totalmente inúteis para depurar. Em segundo lugar, o principal fato de que, como Administrador, há um bug que só olha no arquivo administrators_authorized_keys e não na pasta Users .ssh esperada para authorized_keys (ponto de dor de todos executando sshd no Windows). Finalmente a pasta 'ssh' em ProgramData! Eu queria saber onde estava colocando os certificados de servidor etc. Então, apenas suas informações aqui me ajudaram depois de coçar minha cabeça por um dia ou mais. Obrigado!
Mestre James
essa resposta foi a única que funcionou para mim em um novo nível gratuito de instância do ec2 do Windows 2019.
yolob 21
3

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

ls -A

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.

Mackie Messer
fonte
3

A solução simples que encontrei foi mover o authorized_keysarquivo do diretório oculto .ssh e colocá-lo no diretório ssh do sistema:

/etc/ssh/keys/authorized_keys

Assim que fiz isso funcionou sem problemas.

Mrbronz
fonte
3

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:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys

salve-o e tente fazer o login com a chave privada agora. diverta-se.

Ravi Anand
fonte
ssh às vezes é instalado com a linha authorizedkeysfile comentada, então não sabe onde procurar pelo arquivo de chaves autorizadas :-(
kenyee
Quais são as permissões necessárias para o arquivo authorized_keys? E tem que estar no diretório do usuário ou no diretório do OpenSSH?
GarfieldKlon,
Deve estar no diretório OpenSSH ou onde você instalou o OpenSSH. você deve conseguir encontrá-lo
Ravi Anand,
Certifique-se de que você está configurando usando a conta de administrador.
Ravi Anand,
2

Graças ao nrathaus e à /var/log/auth.loginvestigação no nível de depuração, vem o seguinte.

Outro motivo é que seu diretório pessoal pode ter permissões diferentes de 755.

Intel83
fonte
Seu diretório pessoal deve ser 700, que é o padrão no CentOS.
karatê
2

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.

hyeuc
fonte
1
Semelhante aqui: ao copiar do PuttyGen, tive novas linhas após "ssh-rsa" e após a chave. Depois de removê-los, funcionou.
Lucian P.
1

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.

Andrew Campbell
fonte
1

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.

selinux=disabled

BTW ... esqueci de mencionar que tive que definir o LogLevel = DEBUG3 para identificar o problema.

Sagaya
fonte
1
Em vez de desabilitar o SELinux, você pode alterar o contexto de segurança na pasta .ssh. chcon -R -t ssh_home_t .ssh
palehorse
1

Eu tive o mesmo erro no solaris, mas encontrei em /var/adm/splunk-auth.log o seguinte:

sshd: [auth.debug] debug1: PAM conv function returns PAM_SUCCESS
sshd: [auth.notice] Excessive (3) login failures for weblogic: locking account.
sshd: [auth.debug] ldap pam_sm_authenticate(sshd-kbdint weblogic), flags = 1
sshd: [auth.info] Keyboard-interactive (PAM) userauth failed[9] while authenticating: Authentication failed

Em / etc / shadow a conta foi bloqueada:

weblogic:*LK*UP:16447::::::3

Removida a parte "* LK *":

weblogic:UP:16447::::::3

e eu poderia usar ssh com authorized_keys como de costume.

Bruno Ruess
fonte
1

No meu caso, foi causado por ( /etc/ssh/sshd_config):

PermitRootLogin no

Alterou para yes, reiniciou o serviço e entrou normalmente.

Alex Fortuna
fonte
1

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

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20170502"
AAAAB3NzaC1yc2EAAAABJQAAAQEAr4Ffd3LD1pa7KVSBDU+lq0M7vNvLp6TewkP7
*******C4eq1cdJACBPyjqUCoz00r+LqkGA6sIFGooeVuUXTOxbYULuNQ==
---- END SSH2 PUBLIC KEY ---- 

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

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAr4Ffd3LD1pa7KVSBDU+lq0M7vNvLp6TewkP7wfvKGWWR7wxA8GEXJsM01FQw5hYWbNF0CDI7nCMXDUEDOzO1xKtNoaidlLA0qGl67bHaF5t+0mE+dZBGqK7jG9L8/KU/b66/tuZnqFqBjLkT+lS8MDo1okJOScuLSilk9oT5ZiqxsD24sdEcUE62S8Qwu7roVEAWU3hHNpnMK+1szlPBCVpbjcQTdiv1MjsOHJXY2PWx6DAIBii+/N+IdGzoFdhq+Yo/RGWdr1Zw/LSwqKDq1SmrpToW9uWVdAxeC4eq1cdJACBPyjqUCoz00r+LqkGA6sIFGooeVuUXTOxbYULuNQ== yourname@hostname

No meu caso, excluí alguns comentários, como

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20170502"
---- END SSH2 PUBLIC KEY ----

e adicione ssh-rsano início, adicione yourname@hostnameno 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_keyspor cat public-key >> ~/.ssh/authorized_keys, em seguida, sudo chmod 700 ~/.ssh sudo chmod 600 ~/.ssh/authorized_keysem seguida, você deve modificar o / etc / ssh / sshd_config, RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keysmeu sistema operacional é CentOS 7, Esta é a minha primeira vez para anwser pergunta, eu vou tentar o meu esforço para fazer, Obrigado!

nuclear
fonte
1
@Ronak Bhatt, Agradeço os esforços por mim, tentei deixar os códigos mais claros, por todo esse código usei ctrl + K, mas StackOverflow me disse "seu apelo de resposta contém códigos, por favor, use o formato correto", e não sei por quê é diferente entre escrito e enviado, não posso enviar minha resposta, o que me leva a ter que adicionar códigos em 'código' linha por linha. Vou aprender o formato markdown, pensa.
nuclear
Na versão atual, o PuttyGen mostrará a chave pública no formato correto para copiar e colar. Portanto, não há mais necessidade de converter manualmente a chave do putty pub para o formato correto.
Erik Kalkoken
1

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.

Glória à Glória
fonte
0

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.

Geir Borse
fonte
0

No meu caso, a casa no nfs era 777, precisava ser 750. Isso resolveu o problema.

dghadge
fonte
0

Eu tenho esse problema em que o sshd só lê authorized_keys2.

Copiar ou renomear o arquivo resolveu o problema para mim.

cd  ~/.ssh
sudo cat authorized_keys >> authorized_keys2

PS Estou usando o Putty do Windows e o PuTTyKeygen para a geração de pares de chaves.

Chad Liu
fonte
0

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.

Prada
fonte
0

Ao usar o Cpanel, você pode verificar se a chave está autorizada em

Acesso SSH >> Chaves públicas >> Gerenciar >> Autorizar ou desautorizar.

Tomás Cot
fonte
0

se você receber este erro em /var/log/secure

erro: key_read: key_from_blob AA
AAB3NzaC1yc2EAAAABJQAAAQEAoo3PFwX04NFG + rKz93l7em1BsUBzjHPMsswD

isso significa que sua chave está tendo espaço, se você gerou a chave por meio de puttgen ao visualizar o .ppkarquivo, ela terá a seguinte aparência:

AAAAB3NzaC1yc2EAAAABJQAAAQEAoo3PFwX04NFG+rKz93l7em1BsUBzjHPMsswD
al74MLaJyhQD0pE23NS1izahbo1sJGnSJu2VJ//zxidSsba6xa6OvmeiKTwCz0E5
GMefdGVdpdbTlv99qjBl1+Nw1tDnHIC0+v9XmeZERQfCds9Kp1UivfReoYImntBC
gLtNyqRYrSu8csJCt7E1oY8QK6WP1vfYgAQ2taGyS9+g7FHyyf5VY2vH3oWzzbqz
xjsSLAv3zEQSm1LzSw9Pvc8iwasFyUMBOPj31CKQYTXyX8KpJTr0Zb7oqMauBE5L
VwxZhlcJHbj0FsMbF/+GRjvgexymCi3bHmwGQ6FEADNd0RkhdQ==

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

Sandeep Chhabra
fonte
0

O que funciona para mim é:

  • Parou a instância ec2
  • desligue o volume
  • anexar o volume com a instância antiga usando a mesma chave e foi capaz de SSH
  • monte o volume em alguma pasta temporária
  • verificado o arquivo no diretório mount_point / home / ec2-user / .ssh / authorized_keys
    • Idealmente, este arquivo precisa ter nossas informações principais, mas para mim ele estava vazio
  • copiou a instância antiga do arquivo authorized_keys para o volume recém-montado
  • desmonte o dispositivo
  • reanexar à instância ec2 original
  • inicie-o e deixe-o passar nas verificações de saúde

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

Sohaib Mustafa
fonte
0

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 para 700e o diretório .ssh para 600.

jstMusa
fonte
0

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 -

  1. Você está usando uma chave privada SSH, mas a chave pública correspondente não está no arquivo authorized_keys.
  2. Você não tem permissões para o seu arquivo authorized_keys.
  3. Você não tem permissão para a pasta .ssh.
  4. Seu arquivo authorized_keys ou pasta .ssh não está nomeado corretamente.
  5. Seu arquivo authorized_keys ou pasta .ssh foi excluído.

Passos para corrigi-los

  • Pare a instância Ec2 problemática
  • Desanexe o volume raiz (/ dev / sda1)
  • Crie uma instância ec2 ou use uma em execução
  • Monte o volume desanexado (/ dev / sdvf) para a nova instância ec2

Agora, depois de fazer login no novo ec2, execute as etapas abaixo

  • Comando Lsblk - lista todas as montagens disponíveis
  • Escolha o valor de montagem que você desmontou da instância problemática
  • Como ec2-user execute “sudo mount / dev / mapper / rootvg-home / mnt” sudo mount /dev/mapper/rootvg-home /mnt
  • Em seguida, mude o diretório para / mnt
  • Faça todas as alterações necessárias

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

Barath Ravichander
fonte
0

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.

  1. Gere um par de chaves com PuTTYGen.exe em seu local (tipo: RSA, comprimento: 2048 bits).

  2. Salve a chave privada / pública como arquivos " id_rsa.ppk / id_rsa.pub " em seu local.

  3. 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 .

insira a descrição da imagem aqui

  1. Use WinScp (ou comando putty) para copiar " authorized_keys & id_rsa.pub " do seu local para o seu home do usuário do linux " /home/$USER/.ssh/ ".

insira a descrição da imagem aqui

  1. Execute estes comandos:

    chmod 700 .ssh

    chmod 600 .ssh / authorized_keys

    chown $ USER: $ USER .ssh -R

  2. 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).

insira a descrição da imagem aqui

insira a descrição da imagem aqui

m.nguyencntt
fonte
0

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

Don Matteo
fonte
0

Depois de adicionar a chave, faça login como ec2-userse estivesse usando uma máquina Amazon Linux

sachin_ur
fonte
-1

Outro motivo pode ser BOM UTF-8 no authorized_keysarquivo.

TN.
fonte