Removendo inadvertidamente .ssh / allowed_keys, é um erro grave?


13

Eu sou novo na configuração de chaves SSH no Ubuntu 16.04. Eu estava procurando uma chave autorizada para remover o nome, annemas acho que excluí o authorized_keysarquivo inteiro .

mike@mike-thinks:~$ rm /home/mike/.ssh/
authorized_keys  id_rsa           id_rsa.pub       known_hosts
mike@mike-thinks:~$ rm /home/mike/.ssh/authorized_keys 

É um erro grave? Se sim, como regenerá-los? Enquanto isso eu fiz isso:

mike@mike-thinks:~/.ssh$ touch ~/.ssh/authorized_keys
mike@mike-thinks:~/.ssh$ ls
authorized_keys  id_rsa  id_rsa.pub  known_hosts
mike@mike-thinks:~/.ssh$ chmod 600 ~/.ssh/authorized_keys

Como o primeiro rmcomando acabou listando o conteúdo do diretório? É um erro de cópia que deveria ser ls /home/mike/.ssh/?
Barmar

3
@ Barmar, é assim que aparece no Bash quando você pressiona a tecla Tab para completar automaticamente o caminho, e há várias opções.
ilkkachu

2
Agora é a melhor hora para pensar em backup e restauração .
Reintegrar Monica - M. Schröder

Respostas:


21

O ~/.ssh/authorized_keysarquivo contém uma lista de chaves públicas. Ele permite que todos os proprietários de uma chave privada correspondente a uma dessas pessoas se conectem a esta máquina e obtenham acesso remoto nessa conta de usuário (o til ~na frente do caminho significa que esse arquivo está no diretório inicial do usuário atual).

No servidor (a máquina que você deseja se conectar a ):

Se você excluiu este arquivo, ninguém poderá se autenticar nessa conta de usuário usando suas chaves privadas. A autenticação por senha ainda funcionaria, a menos que estivesse desativada.

Você precisaria gerar novamente o arquivo e adicionar todas as chaves públicas às quais deseja conceder acesso usando o método de autenticação de chave pública novamente.

No cliente (o computador que você deseja se conectar a partir de , ou seja, a sua máquina local):

Aqui você não precisa de um authorized_keysarquivo, porque provavelmente não deseja autorizar nenhuma chave e conceder acesso remoto ao computador local. Deve estar vazio ou excluído.

No cliente, você só precisa dos arquivos de chave privada que estão autorizados no servidor (ou seja, que possuem suas chaves públicas correspondentes no authorized_keysarquivo no servidor) e, opcionalmente, de um arquivo confige known_hostsarquivo apropriados .


Obrigado ! Hmm, eu sou realmente novo em chaves públicas, privadas e acesso remoto. Esta é a minha máquina pessoal. Acho que ninguém tinha acesso remoto à minha máquina, acho que não.
IggyPass

Se você não quiser que ninguém tenha acesso à máquina, basta remover o arquivo ou deixá-lo vazio e pronto.
PLumo

2
Ok, então eu acho que você leu errado. Você não precisa do authorized_keysarquivo na máquina local, mas no servidor.
pLumo 18/06

3
ssh-keygencria id_rsae id_rsa.pub, não authorized_keys. E isso com certeza.
PLumo

1
Observe que é bastante comum querer ssh de outro computador para o seu computador desktop, e usar chaves para autenticar nesse caso é mais seguro.
Karl Bielefeldt

3

Sim, você removeu o arquivo inteiro. Para recriá-lo, todos os usuários precisam copiar suas chaves ssh na idade do servidor. Você pode usar

ssh-copy-id user@hostname.example.com

Se você não deseja remover todas as chaves, edite o arquivo e remova apenas as linhas da próxima vez.


Obrigado, esta é a minha máquina pessoal. Eu não estou certo de que serviu como um servidor ainda
IggyPass

2
Em seu cliente que você precisa a chave arquivo privado e known_hosts e nos authorized_keys servidor com pubkeys
trietend
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.