Desenvolvimento

Fundamentos Essenciais de SSH: Domine os Comandos Básicos

Está querendo criar uma chave ssh? Criar alias? Neste artigo vamos mostrar algumas dicas para quem está iniciando agora a trabalhar com SSH. Caso no decorrer do artigo ainda tenha alguma dúvida não deixe de comentar.

Pré-requisitos

Independente da plataforma que você esteja usando, seja Windows, Linux ou Mac Os, você precisa do SSH cliente instalado, caso não tenha ele instalado vamos dar algumas opções abaixo:

No Windows você pode instalar o Git Bash ou usar o WLS/Ubuntu com os comandos a seguir.
Abra o terminal e rode os comandos:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install openssh-client
Bash

No MacOs já vem pré-instalado.

Conectando-se ao Servidor Remoto

Para conectar em um servidor SSH podemos usar diversos parâmetros, que em sua maioria são opcionais, mas para você pode fazer sentido:

-p: # porta do servidor, o padrão é 22
-o PasswordAuthentication=yes/no # indica se deseja usar senha na conexão
-o PubkeyAuthentication=yes/no # indica se deseja usar chave pública na conexão
-i /caminho/para/sua/chave/publica.pub # indica o caminho da sua chave pública, usado quando ela não está no caminho padrão
Abaixo um exemplo usando uma conexão com senha e a porta do servidor é a 2222.

ssh usuario@servidor -p 2222
Bash

Caso queira usar uma chave pública ficaria assim:

ssh -i /caminho/para/sua/chave/publica.pub usuario@servidor -p 2222
Bash

Use os demais exemplos para seu caso.


Transferência Segura de Arquivos com SCP

Com o SCP você pode tanto copiar arquivos do seu PC pro servidor quanto do servidor pro seu PC.
Esse comando suporta alguns parâmetros que podem te auxliar:
-p: # porta do servidor, o padrão é 22
-r: # recursivamente copia diretórios e seus conteúdos
-v # ativa o modo verbose, exibindo detalhes sobre o processo de transferência
-i /caminho/para/sua/chave/publica.pub #indica o caminho da sua chave pública, usado quando ela não está no caminho padrão
-B: # utilizado para realizar transferências em segundo plano

Dito isso vamos simular que deseja copiar um arquivo do seu pc pro servidor e vice-versa:

scp caminho/do/arquivo.txt username@hostname:/caminho/destino
Bash

Já o fluxo inverso você poderia fazer assim:

scp username@hostname:/caminho/no/servidor/arquivo.txt /caminho/no/seu/computador
Bash

Executando Comandos Remotos

Além de simplesmente conectar-se ao servidor, o SSH permite a execução remota de comandos. Isso é especialmente útil para automatizar tarefas repetitivas. O formato básico é:

ssh username@hostname "comando a ser executado"
Bash

Configurações SSH para Facilitar Conexões

Para simplificar ainda mais suas conexões SSH, você pode utilizar o arquivo de configuração SSH. Edite ou crie o arquivo ~/.ssh/config e adicione entradas para seus hosts. Isso permite que você use aliases em vez de digitar o nome do host completo e configure opções adicionais, como chaves de autenticação e portas personalizadas.

Exemplo de configuração no arquivo ~/.ssh/config:

Host meu-servidor
  HostName hostname
  User username
  Port 2222
  IdentityFile ~/.ssh/publica.pub
Bash

Com essa configuração, você pode conectar-se simplesmente digitando:

ssh meu-servidor
Bash

Usando Chaves Diferentes no Mesmo Servidor

Caso, por diversos motivos, você tenha mais de uma conta no gitlab.com, github.com ou em qualquer outro servidor que permita vincular uma chave SSH, pode se deparar com o seguinte cenário: na conta A você usa uma chave e na conta B você usa outra chave. Por padrão, você teria que optar por usar uma chave por vez. Porém, usando aliases e o arquivo de configuração do SSH, você consegue chegar a uma solução:

Host gitlab-pessoal
  HostName gitlab.com
  User git
  Port 22
  IdentityFile ~/.ssh/pessoal

Host gitlab-profissional
  HostName gitlab.com
  User git
  Port 22
  IdentityFile ~/.ssh/profissional
Bash

Essa solução combina o uso de aliases com a configuração do SSH. Agora, quando quiser conectar ao servidor pessoal, basta clonar ou validar a configuração destas formas:

ssh -T gitlab-pessoal
ssh gitlab-pessoal
git clone gitlab-pessoal:/projeto.git
Bash

Geração de Chaves SSH e Configuração

Para aumentar a segurança e simplificar o processo de autenticação, é recomendável gerar um par de chaves SSH. Execute o seguinte comando para criar uma chave SSH:

ssh-keygen -t rsa -b 4096 -C "[email protected]"
Bash

Siga as instruções para configurar o local de armazenamento e, opcionalmente, uma senha para a chave. Depois de gerar as chaves, você pode adicionar a chave ao agente SSH para evitar a necessidade de inserir a senha repetidamente:

ssh-add ~/.ssh/sua_chave_privada
Bash

Finalmente, copie a chave pública para o servidor remoto com:

ssh-copy-id username@hostname
Bash

Agora, você pode autenticar-se no servidor remoto sem a necessidade de senha.

Conclusão

Agora que você já conhece alguns comandos ssh, já está pronto para usar a chave no versionamento de código ou no seu servidor. Ficou com alguma dúvida? Fique a vontade para comentar.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.