Acesso SSH com chave de segurança

Olá! Eu tenho um servidor UBUNTU 20.04 na rede que serve de proxy server. Eu acesso este servidor por SSH a partir de uma máquina Windows com usuário e senha. Gostaria de implementar o acesso por chave de segurança. Como sou “iniciante”, estou confuso com o que ando lendo na internet sobre esse assunto. Minhas dúvidas são:

1 - O par de chaves é criado no servidor ou no desktop Windows que eu uso para acessar o servidor?
2 - Este par de chaves pode ser usado para acesso de mais de uma máquina Windows ou preciso criar um novo par?
3 - algum tutorial sobre esse assunto que vcs pudessem me indicar?

Muito obrigado!!

1 curtida

Pois é… eu li esse tutorial, mas não tá claro pra mim qual chave fica no servidor e qual vai pro cliente…

A chave que à qual envia para o servidor é a publica id_rsa.pub, utilize seguinte comando.

ssh-copy-id -i id_dsa.pub <USER>@<IP>
1 curtida

No cliente. Copie então a chave pública (.ssh/id_*.pub) do seu desktop para a lista de chaves autorizadas do usuário que você quer logar /root/.ssh/authorized_keys, /home/usuario/.ssh/authorized_keys).

Poder pode, mas não é uma boa prática pois caso uma das máquinas seja roubada/invadida/etc., você não vai poder revogar de maneira confiável o acesso a partir de apenas uma delas.

1 curtida

publica no servidor, privada no computador que vc realiza o acesso

Obrigado pelas dicas, mas estou fazendo algo errado. Estes foram os passos que eu segui:

1 - Criei o par de chaves na estação Windows 10 em \Users\usuariowin.ssh
2 - Criei o arquivo /home/usuariolinux/.ssh/authorized_keys no servidor linux
3 - Copiei o conteúdo da chave pública e colei no arquivo authorized_keys. O conteúdo do arquivo .pub inclui “ssh-rsa” no início e “[email protected]” no final. Copiei e colei tudo! (fiz tbm um teste sem esse início e fim do arquivo)
4 - Alterei o arquivo sshd_config com as seguintes mudanças:
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no

Quando tento acessar (ssh [email protected]) recebo mensagem Permission denied (public key)

O que estou fazendo de errado?

Só acrescentando que ssh com usuário e senha está ok, mas eu queria usar as chaves.

Certifique-se de copiar a chave corretamente para o diretório /home/<USER>/ do usuário à qual quer se conectar, a maneira de copiar facilmente a chave para o usuário certo é utilizar o comando à qual informei ssh-copy-id -i /CAMINHO/PARA/CHAVE-PUBLICA.pub <USER>@<IP>, mas antes terá que permitir o login por senha, e somente depois da chave estar adicionada, impedir o login por senha.

1 curtida

Entendi, mas eu gerei o par de chaves no Windows 10 e o W10 não aceita esse comando…

Tente o comando abaixo no PowerShell

type /CAMINHO/PARA/CHAVE-PUBLICA.pub | ssh <USER>@<IP> "cat >> .ssh/authorized_keys"

Consigo copiar a chave pra dentro do arquivo authorized_keys (na vdd ficou com 2 linhas iguais, mas apaguei uma), mas continua a mensagem Permission denied (public key).

O usuário que eu uso no W10 é diferente do usuário que quero logar no servidor Linux. Isso é um problema?

Apaguei o arquivo authorized_keys e criei outro. Agora funciona! Muito obrigado pela ajuda e pela paciência!
Abs

:+1: