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
Bash

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

ssh meu-servidor
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.