A principal forma de conectar-se a um servidor Linux é através do protocolo SSH . Esse tipo de conexão é seguro, pois todos os dados transferidos por meio dela são criptografados. Para estabelecer uma conexão SSH, você deve configurá-la no servidor remoto ao qual deseja se conectar e também o cliente no computador do usuário. Existem diversos softwares para conexão SSH. No Linux, o pacote OpenSSH é o mais popular, enquanto no Windows, o PuTTY é o mais utilizado.
Vamos dar uma olhada mais de perto na configuração do servidor usando o Ubuntu Server 18.04 como exemplo e, em seguida, tentar conectar-se ao servidor pelo Linux e Windows.
Tudo o que fizermos será a partir da conta de um usuário comum. Neste caso, criamos o usuário “ mihail ”, e a conta “ root ” está desativada por padrão.
Configuração do lado do servidor
Configure o pacote executando este comando:
sudo apt install openssh-server
Após a instalação terminar, certifique-se de que o serviço esteja em execução. Use este comando:
systemctl status sshd
O status “ Ativo (em execução) ” significa que o serviço está habilitado e funcionando normalmente.
Para evitar o bloqueio de conexões de entrada pelo firewall, certifique-se de desabilitá-lo, porque não vamos configurar o firewall de rede neste artigo.
Use este comando:
sudo ufw disable
Nesta fase você já pode se conectar ao servidor. Com as configurações padrão, o servidor permite conexão à porta padrão 22 com autenticação baseada em senha.
Conexão SSH do Linux
Como regra, o cliente OpenSSH é instalado no Linux por padrão e não requer configuração manual adicional. A conexão pode ser estabelecida a partir do terminal com a ajuda do comando ssh. Os parâmetros neste caso seriam o nome de usuário e o endereço IP do servidor remoto. Em nosso servidor de teste que estamos usando como exemplo, há apenas uma conta “mihail”, então usaremos isso.
ssh [email protected]
Na primeira conexão, você precisará confirmar a adição da chave pública do servidor ao banco de dados; portanto, responda " sim ". Depois disso, você poderá inserir a senha. Se a conexão for bem-sucedida, você verá uma mensagem de boas-vindas na linha de comando do servidor. Agora, todos os comandos serão executados diretamente no servidor remoto.
SSH do Windows
Abra o PuTTY e configure os parâmetros de conexão. Certifique-se de que a opção " Tipo de conexão " esteja definida como SSH . Insira o endereço IP no campo " Nome do host ", o valor padrão 22 no campo " Porta " e clique em " Abrir ".
Na primeira conexão, o Putty solicitará que você confirme que confia neste servidor; clique em " Sim ".
Depois de inserir o login e a senha, você verá a linha de comando do servidor remoto.
Autenticação por chave. Aumento do nível de segurança
Quando um cliente está tentando estabelecer uma conexão segura com o servidor por meio de SSH, antes de permitir a conexão, o servidor precisa autenticar (verificar) o cliente. Como mencionado antes, a autenticação baseada em senha é geralmente usada por padrão. Ela não fornece segurança robusta, porque sempre há uma maneira de forçar brute. Além disso, a autenticação de senha não é aplicável a conexões SSH com o uso de scripts.
Para esse tipo de tarefa, há um método especial de autenticação por chave. O ponto é que o cliente gera chaves privadas e públicas e então a chave pública é enviada ao servidor. Depois disso, você não precisa de senha para se conectar ao servidor, porque a autenticação é conduzida com base em chaves públicas e privadas do cliente. Para fornecer um bom nível de segurança, o acesso à chave privada deve ser restrito. Devido ao fato de que a chave privada é armazenada no lado do cliente e não é transferida pela rede, acredita-se que esse método seja mais seguro.
Autenticação por chave no Linux
Vamos gerar chaves públicas e privadas no cliente com a ajuda do software utilitário ssh-keygen. A ferramenta irá sugerir alterar o caminho para a chave privada e inserir uma frase-senha para segurança extra. Deixe todos os parâmetros como padrão pressionando Enter em todas as solicitações.
Como resultado, no diretório inicial, dentro da pasta .ssh, você encontrará dois arquivos gerados: id_rsa e id_rsa.pub , que contêm as chaves privada e pública, respectivamente.
Depois disso, você precisará enviar a chave pública para o servidor. Para fazer isso, copie o conteúdo do arquivo “ id_rsa.pub ” para o arquivo “ ~/.ssh/authorized_keys ” no servidor. Vamos usar o método mais fácil com a ajuda da ferramenta “ ssh-copy-id ”. Insira o login e o endereço IP do servidor, como faria em uma conexão normal. Após inserir a senha, a chave pública do cliente será copiada automaticamente para o servidor. Execute este comando:
ssh-copy-id [email protected]
Depois de fazer tudo isso, o servidor não exigirá mais a digitação da senha.
Autenticação por chave no Windows
Abra o PUTTYGEN e clique em “ Gerar ”. Para gerar as chaves, basta mover o cursor do mouse sobre a tela e a ferramenta as gerará aleatoriamente.
Após a geração das chaves, clique em “ Salvar chave privada ” e salve-a no arquivo com a chave privada em seu disco. Você pode definir o caminho que preferir, mas precisará especificá-lo posteriormente no PuTTY. Em seguida, copie a chave pública da parte superior da janela.
Vamos enviar a chave pública simplesmente copiando-a para o terminal. Abra o PuTTY e conecte-se ao servidor como de costume. Agora, vamos criar o arquivo “ .ssh/authorized_keys ” e restringir o acesso de outros usuários a ele, de forma que fique disponível apenas para o criador.
mkdir .ssh
touch .ssh/authorized_keys
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
Após criar o arquivo, coloque a chave pública do cliente nele. No estágio anterior, copiamos a chave pública para a área de transferência. Para gravar o que está na área de transferência no arquivo, use o comando cat e o redirecionamento de saída.
cat > .ssh/authorized_keys
Após inserir o comando, clique com o botão direito do mouse na janela do terminal e cole o conteúdo da área de transferência. Para confirmar a entrada, pressione o atalho “ Ctrl+D ” e desconecte-se do servidor.
Agora vamos especificar o caminho para a chave privada no Putty e conectar ao servidor novamente.
De agora em diante, para se conectar ao servidor, você só precisará digitar o nome de usuário. Se você estiver tentando se conectar ao servidor de outro dispositivo que não tenha a chave privada correta, o servidor solicitará a senha. Após a autenticação baseada em chave ser configurada, você pode desabilitar o acesso por senha.