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
BashNo 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
BashCaso queira usar uma chave pública ficaria assim:
ssh -i /caminho/para/sua/chave/publica.pub usuario@servidor -p 2222
BashUse 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
BashJá o fluxo inverso você poderia fazer assim:
scp username@hostname:/caminho/no/servidor/arquivo.txt /caminho/no/seu/computador
BashExecutando 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"
BashConfiguraçõ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
BashCom essa configuração, você pode conectar-se simplesmente digitando:
ssh meu-servidor
BashGeraçã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]"
BashSiga 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
BashFinalmente, copie a chave pública para o servidor remoto com:
ssh-copy-id username@hostname
BashAgora, 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.