Existe diferença se a chave SSH é criada no servidor?

1

Eu tenho um servidor rodando Ubuntu. Eu instalei o openssh-server e queria usar a chave ssh para fins de login. Tudo funciona bem, exceto uma coisa. No site da comunidade do Ubuntu está escrito "Isso aumenta enormemente sua segurança, mas torna impossível para você se conectar ao seu próprio computador a partir do PC de um amigo sem pré-aprovar o PC [...]" ( link ).

Eu criei o par de chaves no meu servidor / no serverside. Então eu adicionei a chave pública ao authorized_keys e transferi a chave privada para o meu PC cliente e deletei a chave privada do servidor.

Eu consigo fazer login no meu pc com a chave privada. Mas também consigo fazer login de qualquer outro computador ou smartphone com essa chave privada.

Este comportamento está correto? Porque a citação acima diz que eu tenho que aprovar cada novo cliente, mas na prática eu não o fiz.

    
por netblognet 23.02.2013 / 19:55

2 respostas

4

Em geral, um par de chaves privada / pública deve ser gerado no cliente que você deseja usar e CADA cliente deve ter seu próprio par de chaves privada / pública. A chave privada é somente para o cliente e a chave pública pode ser compartilhada com os servidores que você deseja acessar.

Normalmente, o servidor deve armazenar apenas as chaves públicas e cada chave pública diz que "o cliente com a chave privada correspondente pode acessar esta máquina".

Você não deve ter mais de um cliente com a mesma chave privada. Se qualquer um desses clientes for comprometido, TODOS os seus clientes estarão comprometidos e você terá que remover a chave privada e gerar novamente uma nova chave em seus sistemas. É por isso que um par de chaves privada / pública por cliente é bom, porque se algum deles for comprometido, o servidor precisará revogar apenas uma chave pública do arquivo authorized_keys para remover o acesso usando essa chave privada. Parece meio estranho, mas na prática você não quer negar todas as conexões se apenas um cliente estiver comprometido. (Para responder à sua sub-questão, o comportamento está correto, mas não é o que você deve permitir que ocorra. )

Finalmente, como você é o proprietário do servidor, é "ok" gerar o par de chaves no servidor e depois transferi-lo, mas em geral quando uma pessoa nem sempre é proprietária do servidor, ele gera o par de chaves e envia o público chave para os servidores que eles querem acessar e os administradores de sistemas lidam com vários processos de verificação para garantir que eles estejam adicionando um cliente que eles querem permitir.

    
por 23.02.2013 / 20:10
1

Como afirmado na comunidade Ubuntu, o método só aumenta sua segurança se você desabilitar a autenticação de senha para que só seja possível para se conectar por meio da chave privada.

If you disable password authentication, it will only be possible to connect from computers you have specifically approved. This massively improves your security, but makes it impossible for you to connect to your own computer from a friend's PC without pre-approving the PC, or from your own laptop when you accidentally delete your key.

To disable password authentication, look for the following line in your sshd_config file:

#PasswordAuthentication yes

replace it with a line that looks like this:

PasswordAuthentication no

    
por 23.02.2013 / 20:02