A chave pública ssh está associada a um usuário?

3

Meu palpite é que uma máquina executando ssh server mantém um mapeamento de ssh public key no meu nome de usuário (eu sou um usuário remoto) que autorizou o acesso. Mas algumas outras pessoas e eu também podemos fazer login em nome de algum usuário local para a máquina remota (o que significa que temos uma máquina remota com um usuário local john.doe para essa máquina). Isso significa que há também um mapeamento de um usuário john.doe para vários ssh public keys que estão autorizados a acessar em nome de john.doe ?

    
por user1745356 11.10.2016 / 09:54

2 respostas

2

A resposta curta é não.

Cenário de amostra: você (Bob) deseja se conectar ao host remoto ( earth ) como alice .

O SSH é uma conexão de algum lugar (um Unix, Windows, tablet, ...) para um usuário ( alice ) em um host ( earth ).

Quando você ( bob ) se conecta sem senha, você usa uma chave privada (no Unix, ele está tradicionalmente localizado em ~/.ssh , mas você pode colocá-lo em qualquer lugar).

O host remoto tem apenas dois fatos:

  • você deseja se conectar como alice ,
  • você afirma ter uma chave privada (da qual você forneceu a impressão digital)

O host remoto ( earth ), tendo parte pública da chave, apresenta um desafio que qualquer pessoa com uma parte privada pode responder. Uma vez que o desafio é feito, você simplesmente se conecta.

Neste cenário, você provou que tem parte privada de uma das chaves autorizadas de alice . Mas o host remoto ( earth ) não tem como saber que você é Bob, Igor ou qualquer outra pessoa.

Lembre-se de que você pode se conectar a partir do Windows ou de um dispositivo Android em que o esquema do usuário é completamente diferente.

authorized_keys

Este arquivo lista as chaves públicas que podem se conectar (após o desafio).

Este arquivo está localizado em

  • ${HOME}/.ssh/authorized_keys (padrão)
  • qualquer local fornecido por AuthorizedKeysFile no arquivo sshd_config . Veja man sshd_config .
por 11.10.2016 / 10:34
3

Eu não entendo totalmente a sua pergunta, mas a forma como uma chave SSH é mapeada para o usuário johndoe (e autoriza-o a efetuar login sem senha no servidor remoto) é que a parte da chave pública está incluída no arquivo

~johndoe/.ssh/authorized_keys  

no servidor remoto.

Se agora você tiver a parte da chave privada em seu diretório ~/.ssh/ (que será o arquivo ~/.ssh/id_rsa ), você pode entrar sem senha no servidor remoto através do comando:

ssh johndoe@remoteserver

independentemente do seu nome de usuário na máquina local.

    
por 11.10.2016 / 10:35

Tags