CentOS: usuário com arquivo de chave pública separado

3
Em primeiro lugar, deixe-me dizer que estou ciente de que há muitas perguntas semelhantes aqui e em outros sites. Estou convencido de que os tenho esgotado, mas ficaria feliz em provar que estou errado, já que preciso disso resolvido.

Eu tenho um servidor CentOS que tem acesso ssh via chave pública para o usuário root. Eu criei um usuário separado (vamos chamá-lo remote_user) com acesso restrito. Como parte disso, configurei um diretório inicial em um local diferente na máquina.

Como remote_user, gravei para ~ / e criei .ssh / e .ssh / authorized_keys. Eu adicionei a chave pública a authorized_keys (essa mesma chave pública existe em authorized_keys do root, que funciona). Assegurei que ~ / e ~ / .ssh possuam permissões configuradas para 700 e que ~ / .ssh / authorized_keys possuam permissões configuradas para 600. Assegurei que todos esses arquivos são de propriedade de remote_user.

Em relação ao SELinux, eu tentei: Torná-lo permissivo (temporariamente), restorecon -R -v ~/.ssh/authorized_keys e usar ls -Z e chcon para garantir que os arquivos remote_user / .ssh e remote_user / .ssh / authorized_keys tenham o mesmo contextos de segurança como seus arquivos raiz correspondentes.

O conteúdo de / etc / ssh / ssh_config é:

Host *
    GSSAPIAuthentication yes
    ForwardX11Trusted yes
    SendEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
    SendEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
    SendEnv LC_IDENTIFICATION LC_ALL LANGUAGE
    SendEnv XMODIFIERS

E ainda não há dados. Usando putty, conectando-se ao servidor e digitando o nome de usuário root, minha chave Paegant concede acesso. Ao digitar o nome de usuário como remote_user, sou imediatamente solicitado pela minha senha. Quando eu uso a senha, posso acessá-la sem problemas. Eu também tentei ssh encaminhamento de outro servidor com o servidor ssh, mesmo resultado.

Então, o que estou perdendo?

    
por Stringers 16.05.2017 / 09:29

1 resposta

1

Tudo isso parece ser como deveria ser ... a única coisa que você não menciona é: se a máquina que você está tentando conectar tem a chave privada? Talvez não seja salvo onde precisa ser ( ~/.ssh/id_rsa , por exemplo) - se não for, então você tem que usar o seguinte comando para se conectar:

ssh -i <path to identity file> <username>@<hostname>

Além disso, recomendo que você não copie as identidades "manualmente", a menos que realmente precise e saiba o que está fazendo, mas simplesmente use os comandos ssh que facilitam isso para você:

ssh-keygen
ssh-copy-id <username>@<hostname>

E é isso. Isso criará primeiro um novo arquivo de identidade e copiá-lo para o host. Se você já tem o arquivo de identidade em algum lugar, é claro que você também pode usar o -i <path to identity file> flag com ssh-copy-id.

EDITAR: Eu só notei que você mencionou que estava se conectando com o Putty - isso é um pouco diferente, e o putty tem seu próprio mecanismo para isso, o PuTTY Key Generator.

Gere e salve as chaves privada e pública - sendo private o id_rsa do nosso exemplo anterior que permanece na máquina cliente, sendo o público id_rsa.pub que precisa ser copiado em ~ / .ssh / authorized_keys na máquina do servidor.

Depois de fazer isso, você precisa adicionar a chave privada na guia Conexão / SSH / Autenticação da sessão que está usando.

    
por 16.05.2017 / 11:01

Tags