ssh e nome de usuário

1

Eu não entendo a segurança nesta declaração: O SSH não faz nome de usuário que corresponde apenas a chave pública à correspondência de chave privada. Isto é em referência a um post anterior meu onde eu posso ser usuário "svn", mas contanto que eu tenha uma correspondência de chave P / p minha. Não estou apenas fingindo ser alguém que não sou?

Aqui está minha pergunta anterior com uma resposta válida. Permissões do Linux com svn e Syncro

Alguém pode explicar?

    
por mike628 04.05.2011 / 19:47

5 respostas

1

Portanto, quando você faz login com um par de chaves para autenticação, o servidor usa a chave pública armazenada no arquivo authorized_keys no diretório inicial dos usuários. como a outra resposta diz, está no diretório inicial dos usuários do svn, já que é a conta que você está usando.

O par de chaves não está vinculado ao seu ID EXCEPTO através do uso desse arquivo. Ou, mais precisamente, esse par de chaves está vinculado à sua conta apenas por meio de sua presença no arquivo authorized_keys no diretório inicial dos usuários. Não há nada na chave em si que a vincule a uma conta específica.

Você poderia copiar o arquivo para o diretório home de Bob e Bob poderia logar usando esse par de chaves. (Assumindo que as permissões foram definidas corretamente).

Está fazendo sentido ainda?

    
por 04.05.2011 / 20:06
1

O servidor ao qual você está se conectando não se importa com o nome de usuário que você tem em sua própria máquina. Ou seja, se o seu nome de usuário for 'foobar' no seu laptop, você ainda poderá se conectar como 'svn' no servidor. O ssh usará seu nome de usuário como padrão, portanto, é necessário especificar uma alternativa, se necessário.

Na sua situação, acredito que o fluxo é este:

foobar @ yourcomputer - > ssh - > svn @ server

Nesse caso, o cliente ssh procurará uma chave privada no seu diretório ~ / .ssh / (ou equivalente) que corresponda a uma chave pública no ~ svn / .ssh / authorized_keys no servidor. Um caso de uso comum nesta situação, se houver algumas chaves públicas no arquivo authorized_key do usuário svn, para que muitas pessoas diferentes possam se conectar como o usuário svn, sem precisar compartilhar a senha do usuário svn.

Ou, para colocar de uma maneira diferente, você não está "fingindo" ser o usuário SVN - você está se tornando o usuário SVN no servidor remoto.

    
por 04.05.2011 / 20:00
0

É só isso: você pode fazer login como qualquer usuário no sistema remoto, desde que tenha credenciais válidas - seja senha ou chave privada. Apenas no caso - note que o sshd corresponde à sua chave privada para as chaves autorizadas do nome de usuário que você está tentando fazer login, e não para o seu nome de usuário, se você tiver um no servidor.

Pedir que o nome de usuário de origem seja o mesmo forneceria pouca ou nenhuma segurança, até onde eu saiba, como por exemplo, se você é o administrador do servidor de origem, você pode criar qualquer nome de usuário que desejar.

    
por 04.05.2011 / 20:00
0

SSH does no user-name matching only public key to private key matching.

Essa afirmação não faz sentido e é patentemente falsa. O SSHD precisa para saber seu nome de usuário para que ele saiba onde procurar no servidor por sua chave pública.

    
por 04.05.2011 / 20:01
0

Se você tiver seu próprio par de chaves ssh pública / privada, poderá fornecer sua chave pública a qualquer pessoa. Eles podem adicionar essa chave ao arquivo $ HOme / .ssh / authorized_keys para qualquer conta à qual desejam conceder acesso.

Quando você ssh [email protected] ssh usar sua chave privada armazenada no host do qual você está digitando e a chave pública em host.tld armazenada em ~user/.ssh/authorized_keys para confirmar sua identidade. Sua chave pública também pode estar no arquivo authorized_keys de outros usuários, então ssh [email protected] também o colocaria.

    
por 04.05.2011 / 20:05