Como criar uma conexão SSH
Neste tutorial, você vai aprender como configurar sua máquina para ser capaz de estabelecer conexões ssh com um servidor/cluster.
Nota: se você não sabe o que é ssh, dê uma olhada neste artigo
Criando uma conexão usando apenas a linha de comando
A maneira mais fácil de criar uma nova conexão ssh é usando o seguinte comando:
> ssh <NOME_DO_USUÁRIO>@<ENDEREÇO_IP_DO_SERVIDOR>
Após pressionar enter, ele solicitará sua senha para se conectar ao servidor.
Por padrão, o comando ssh tenta se conectar na porta 22. Se esta porta foi alterada no servidor, você precisa usar o parâmetro -p e indicar a porta:
> ssh <NOME_DO_USUÁRIO>@<ENDEREÇO_IP_DO_SERVIDOR> -p <NÚMERO_DA_PORTA>
Por exemplo:
> ssh andre@100.152.158.21 -p 22
Neste caso, você não precisa informar a senha do usuário (exceto se a chave tiver uma).
Conectando usando uma chave criptográfica
Às vezes, queremos/precisamos usar uma chave privada em vez de uma senha. Nesse caso, você precisa informar a chave no comando usando o parâmetro -i da seguinte forma:
> ssh <NOME_DO_USUÁRIO>@<ENDEREÇO_IP_DO_SERVIDOR> -p <NÚMERO_DA_PORTA> -i <CAMINHO_COMPLETO_PARA_A_CHAVE>
Por exemplo:
> ssh andre@100.152.158.21 -p 22 -i /home/andre/ssh_key
Neste caso, você não precisa informar a senha do usuário (exceto se a chave tiver uma).
Configurando o arquivo .ssh/config
Usar o comando ssh como na seção anterior funciona corretamente. No entanto, escrever sempre o comando completo é cansativo. Felizmente, há uma maneira mais rápida de usar o ssh, mas precisamos configurar o arquivo .ssh/config. Para fazer isso, basta seguir estas etapas:
- Primeiro, vá para o diretório do seu
usuário. Se você estiver usando o Windows, geralmente está localizado emC:Users\<SEU_NOME_DE_USUÁRIO>. Para Linux,/home/<SEU_NOME_DE_USUÁRIO> - Neste diretório, verifique se há uma pasta oculta chamada
.sshe, se estiver ausente, crie uma nova. - Na pasta
.ssh, verifique se há um arquivo chamadoconfig. Se estiver ausente, crie-o. Importante: este arquivo não tem extensão! -
Dentro deste arquivo, vamos inserir os parâmetros
sshusados na seção anterior de acordo com o seguinte padrão:Host <TAG_DO_SERVIDOR> HostName <ENDEREÇO_IP_DO_SERVIDOR> User <NOME_DO_USUÁRIO> Port <NÚMERO_DA_PORTA>Nota:
<TAG_DO_SERVIDOR>é apenas um alias que você cria para o servidor. Poderia serservidor1, por exemplo.Esta configuração gera o mesmo comando apresentado na seção anterior:
ssh <NOME_DO_USUÁRIO>@<ENDEREÇO_IP_DO_SERVIDOR> -p <NÚMERO_DA_PORTA> - Finalmente, para estabelecer a conexão
sshcom o servidor, você só precisa usar o seguinte comando:> ssh <TAG_DO_SERVIDOR> -
Se você precisar/quiser usar a chave pública como na seção anterior, da mesma forma, precisamos informar o caminho para a chave:
Host <TAG_DO_SERVIDOR> HostName <ENDEREÇO_IP_DO_SERVIDOR> User <NOME_DO_USUÁRIO> Port <NÚMERO_DA_PORTA> IdentityFile <CAMINHO_COMPLETO_PARA_A_CHAVE>O resultado é o mesmo discutido na seção anterior.
Este arquivo config poupa muito tempo da sua vida quando você precisa se conectar a diferentes servidores. Na verdade, você pode criar quantos TAG_DO_SERVIDOR quiser. Basta separá-los usando uma quebra de linha. Um exemplo de arquivo .ssh/config válido seria:
Host golfinho
HostName 110.111.124.96
User andre
Host baleia
HostName 110.111.124.95
User andre123
Port 123
Host boto
HostName 110.111.124.97
User andrel
Port 22
IdentityFile /home/andre/chaves/goku_key.pub
Para se conectar ao host baleia, por exemplo, você só precisa usar
> ssh baleia