The Relicans

loading...
A Caverna do Patocórnio

Liberar acesso ao servidor SSH pelas chaves do GitHub

eduardoklosowski profile image Eduardo Klosowski Originally published at eduardoklosowski.github.io ・2 min read

Uma das formas mais utilizadas para acessar servidores GNU/Linux é através do SSH. Esse acesso pode ocorrer através de usuário e senha ou de um par de chaves criptográfica, normalmente RSA ou mais recente Ed25519, que são chaves assimétricas, onde a chave pública é copiada para o servidor e a privada fica no cliente que está pedindo acesso. Esse processo é o mesmo que ocorre no GitHub para permitir o acesso aos repositórios através de SSH, e é possível se aproveitar disso.

Caso tenha alguma dúvida para criar chaves, ou mesmo queira verificar como configurar o cliente SSH, recomendo dar uma olhada no meu texto sobre configuração do Git.

Permitindo acesso através da chave

Primeiramente, para permitir o acesso a um servidor por chave criptográfica, basta adicionar a chave pública no arquivo ~/.ssh/authorized_keys, onde ~ é a home do usuário no servidor ao qual deseja-se permitir o acesso remoto. Desta forma, basta conseguir uma cópia da chave pública para permitir o acesso. Lembrando que o serviço do SSH deve estar em execução nesse servidor (para Debian e derivados basta instalar o pacote openssh-server).

Acessando a chave pública no GitHub

Como a chave pública não é uma informação sensível, e pode ser divulgada, o GitHub lista as chaves públicas cadastradas dos usuários ao adicionar .keys ao final do link do perfil. Exemplo: https://github.com/eduardoklosowski.keys. Assim ao acessar essa URL será listada todas as chaves públicas cadastradas para a conta, em vez de mostrar o perfil do usuário. Desta forma, basta adicionar essas chaves ao final do arquivo ~/.ssh/authorized_keys e o dono dessa conta já poderá acessar o servidor.

Esse processo também poderia ser feito através da linha de comando, não sendo necessário copiar e colar as chaves, bastando executar um dos comandos abaixo (de acordo com a ferramenta que estiver disponível no servidor):

curl https://github.com/eduardoklosowski.keys >> ~/.ssh/authorized_keys
# Ou
wget -qO - https://github.com/eduardoklosowski.keys >> ~/.ssh/authorized_keys
Enter fullscreen mode Exit fullscreen mode

Considerações

Muitos desenvolvedores possuem conta no GitHub, e adicionaram suas chaves públicas a sua conta. Então fazer esse processo permite liberar o acesso a um servidor de forma fácil e segura (desde que o dono da conta mantenha sua chave privada de forma segura). Uma aplicação bastante interessante disso é na criação de servidores para pair programming, onde um servidor pode ser criado e as pessoas que forem programar podem compartilhar o terminal através do tmux, sendo necessário se conhecer apenas o nome de usuário do GitHub, em vez de criar uma senha e compartilhá-la, ou pedir e aguardar a outra pessoa enviar sua chave pública.

Discussion (0)

Forem Open with the Forem app