Posso usar a autenticação de chave SSH para efetuar login em um sistema remoto com um nome de usuário diferente?

14

Suponha que eu tenha um sistema remoto chamado "remotesystem" e uma conta de usuário "foouser" nesse sistema.

Eu sei que no meu sistema local, posso gerar um par de chaves SSH como usuário local "foouser", colocar a chave pública no arquivo "/home/foouser/.ssh/authorized_keys" em "remotesystem". Quando eu SSH como "foouser" do meu sistema local para "remotesystem", o SSH usa o par de chaves para me autenticar.

Mas e se meu nome de usuário local não for igual ao nome de usuário no sistema remoto? Isto é, e se eu quiser SSH como usuário local "baruser" para "remotesystem"? Obviamente, precisarei gerar um par de chaves para "baruser" e adicionar a chave pública a "/home/foouser/.ssh/authorized_keys". Então, eu deveria ser capaz de "ssh foouser @ remotesystem" enquanto logado como "baruser" localmente, e o SSH usará o par de chaves para autenticar, certo?

Estou perguntando porque estou tentando fazer com que a autenticação de chave funcione nesse cenário, sem sucesso. Não tenho certeza se é devido à incompatibilidade de nome de usuário ou a um problema de configuração com o servidor SSH no sistema remoto.

    
por Matt Hurne 03.06.2009 / 20:51

7 respostas

10

Sim, você pode fazer isso, assim como descreveu.

baruser@here ~$ ssh-add -l
4096 10:b3:fd:29:08:86:24:a6:da:0a:dd:c6:1e:b0:66:6a id_rsa (RSA)
baruser@here ~$ ssh foouser@remotesystem
motd message, etc.
foouser@remotesystem ~$
    
por 03.06.2009 / 20:55
9

É um pouco de lado, mas .....

Se você está sempre usando o mesmo nome de usuário para um servidor remoto, você também pode achar útil adicionar um host em sua configuração ssh:

Host remotesystem
    User baruser

Dessa forma, você não precisa se lembrar de especificar o nome de usuário ao fazer login e descarta isso ao ter problemas com chaves no futuro.

    
por 08.06.2009 / 13:41
4

Seu nome de usuário local não importa realmente (além da chave privada ter que residir dentro do diretório pessoal do usuário local). Basta copiar a chave para a seção authorized_keys do usuário remoto e ela funcionará.

    
por 03.06.2009 / 20:57
3

Com qualquer problema relacionado ao ssh, a primeira coisa a fazer é aumentar o detalhamento do cliente:

ssh user@machine -vvv

Se isso falhar em fornecer informações sobre o que está errado, você precisará alterar o nível de registro no servidor e reiniciar o daemon.

LogLevel DEBUG3

Você deve encontrar a saída de depuração em /var/log/auth.log (ou onde quer que o ssh esteja configurado para logar). Depois de encontrar o problema, lembre-se de configurá-lo de volta para como você o encontrou.

    
por 03.06.2009 / 21:16
2

As permissões nos diretórios .ssh em ambas as máquinas estão corretas. Geralmente, isso significa 700 no diretório .ssh e no máximo 755 no diretório inicial. Além de 600 em todos os arquivos nos diretórios .ssh.

Se o usuário no sistema remoto for root, certifique-se de que root possa ssh. (PermitRootLogin em sshd_config) e essa chave pública (PubkeyAuthentication) e, se necessário, RSA (RSAAuthentication) estão ativados.

    
por 03.06.2009 / 21:07
2

Se você tiver o SE Linux ativado, também precisará fazer o seguinte.

Adicione o rótulo do SELinux a authorized_keys para que possa ser acessado por sshd.

semanage fcontext -a -t sshd_key_t ~foo/.ssh/authorized_keys
restorecon -Rv ~user/.ssh
    
por 19.01.2017 / 12:04
0

Parece que você está fazendo as coisas corretamente, mas verifique se as permissões estão corretas em authorized_keys. Eles devem ser definidos para 600.

    
por 03.06.2009 / 21:00