Este artigo tem por objetivo passar instruções para criação de um par de chaves SSH e configurá-las no Linux para permitir o acesso sem senha. Esta medida tem por objetivo aumentar a segurança no acesso a servidores. Pois a utilização de chaves inviabiliza o ataque de força bruta devido a complexidade das chaves.
Gerando o par de chaves
Para gerar o par de chaves execute o seguinte comando no terminal.
$ ssh-keygen -t rsa
Em seguida você deverá informar o local onde quer gravar as chaves. Para o uso simplificado, não altere o caminho padrão e pressionar ENTER.
No passo seguinte você é solicitado a informar uma senha para as chaves. Isto também é opcional, e se você deseja ter login automático não deverá informar uma senha.
Depois destes passos suas chaves foram geradas e armazenadas em /home/nomedousuario/.ssh/
Para ver o conteúdo da chave pública digite:
$ cat ~/nomedousuario/.shh/id_rsa.pub
Obs.: No Windows existem pelo menos duas formas de gerar o par de chaves. 1) Pelo PuttyGen ou pelo Powershell nas versões mais recentes do Windows.
Copiando a chave pública para um servidor Linux
Existem algumas formas de se fazer este procedimento. Listarei do mais simples ao mais complexo.
Instalando automaticamente
A forma mais automática de copiar sua chave para o servidor é utilizando o comando ssh-copy-id. Se você seguiu os passos como indicados na seção anterior, esta opção deve funcionar. Para transferir sua chave pública para o servidor digite o seguinte no terminal.
$ ssh-copy-id nomedousuario@ipdoservidor
Se o procedimento ocorreu corretamento será apresentado algo parecido com isto:
Para testar se funcionou basta fazer o login. Se tudo deu certo você logará no servidor sem a necessidade de informar uma senha.
$ssh nomedousuario@ipdoservidor
Instalando manualmente
Para instalar o certificado manualmente faça o acesso com sua senha no servidor
Certifique-se de que existe uma pasta no seu diretorio home com o nome .ssh. Caso contrário crie uma.
$ mkdir .ssh
Coloque a permissão correta nesta pasta
$chmod 700 .ssh
Crie um aquivo dentro desta pasta chamado authorized_keys
$ touch .ssh/authorized_keys
Ajuste as permissões do arquivo
$ chmod 600 .ssh/authorized_keys
O último passo é editar o arquivo authorized_keys e colar o conteúdo de sua chave pública nele.
$ nano .ssh/authorized_keys
Depois de ter colado pressione Ctrl+X, Y e ENTER para salvar.
Assim você conseguirá fazer acesso ao servidor com sua chave.
Conectar a uma servidor com a chave privada
Isto poderá ser feito através de um terminal através do comando SSH ou via softwares como MOBA Xterm, Termius e Putty.
Para conectar pelo ssh digite:
$ ssh nomedousuario@ipdoservidor
Caso sua chave privada não seja localizada e você precise indicar o caminho da chave o comando fica assim:
$ ssh -i caminho/chave nomedousuario@ipdoservido
r
Para conexão via softwares de terceiros, sempre haverá um local para você indicar o caminho de sua chave privada.