O que é SSH?
SSH significa Secure Shell. Com o SSH, você pode acessar máquinas remotas de forma segura, pois a conexão é criptografada. Com o comando ssh do terminal Linux, podemos nos conectar a servidores Linux remotos e trabalhar como se fosse o nosso próprio computador. Ao final deste tutorial, você deverá ter uma compreensão completa de como usar o SSH para se conectar a um servidor remoto no Ubuntu.
Sintaxe
A sintaxe é a regra de como você pode usar o comando ssh. Você pode reorganizar a sintaxe, mas um formato direto deve ser seguido. Abaixo está um exemplo de sintaxe para usar o comando ssh:
|
1 |
ssh remote_host |
O nome de domínio ou endereço IP ao qual você deseja se conectar é o remote_host, conforme mostrado no comando acima. Esta sintaxe pressupõe que o seu nome de usuário no sistema remoto e no seu sistema local sejam os mesmos. No entanto, caso os nomes de usuário não sejam iguais, você pode indicá-lo com este comando:
|
1 |
ssh remote_username@remote_host |
Você precisará verificar sua identidade fornecendo uma senha imediatamente ao se conectar ao servidor. Digite o comando exit para voltar à sua sessão local.
Como Configurar o SSH
O arquivo de configuração principal do sshd no Ubuntu está localizado em /etc/ssh/sshd_config. Se você alterar a configuração do SSH, as configurações do servidor SSHD serão alteradas automaticamente. Antes de qualquer configuração, certifique-se de fazer um backup da versão atual do arquivo usando este comando:
|
1 |
sudo cp /etc/ssh/sshd_config{,.bak} |
Use um editor de texto para abri-lo:
|
1 |
sudo nano /etc/ssh/sshd_config |
Você deve deixar a maioria dos parâmetros como estão neste arquivo. No entanto, há algumas coisas às quais você deve prestar atenção:
|
1 |
Port 22 |
As declarações de porta indicam a porta na qual o servidor SSHD está aguardando conexões. O padrão é 22. A menos que haja motivos específicos, você não precisa alterar essa configuração:
|
1 2 3 |
HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key HostKey /etc/ssh/ssh_host_ecdsa_key |
A declaração da chave de host indica onde a chave de host global está localizada:
|
1 2 |
SyslogFacility AUTH LogLevel INFO |
O nível de logs que deve ser gerado é indicado com estes dois itens. Se você tiver problemas ao usar o SSH, uma excelente maneira de identificar o problema é aumentar a quantidade de logs:
|
1 2 3 |
LoginGraceTime 120 PermitRootLogin yes StrictModes yes |
Estas opções definem algumas informações para o login para evitar login não autorizado quando os arquivos de configuração estão inseguros:
|
1 2 |
X11Forwarding yes X11DisplayOffset 10 |
Essas configurações de parâmetros são referidas como funções de encaminhamento X11. Dessa forma, você pode exibir a interface gráfica (GUI) do sistema remoto no sistema local. Você deve habilitar essa opção no servidor ao se conectar com a opção -X no cliente SSH.
Depois de fazer as alterações, salve o arquivo e feche-o pressionando CTRL-X e Y e, em seguida, pressione Enter. Se você alterar as configurações em / etc / ssh / sshd_config, deverá reiniciar o servidor sshd para aplicar a alteração:
|
1 |
sudo service ssh restart |
Para sistemas systemd, como o Ubuntu 16.04 ou Debian Jessie, use este comando:
|
1 |
sudo systemctl restart ssh |
Teste suas alterações minuciosamente para garantir que tudo esteja funcionando perfeitamente. Você provavelmente deve manter algumas sessões ativas se fizer qualquer alteração. Dessa forma, você pode restaurar a configuração se necessário.
Como você faz login no SSH com chaves? É bom fazer login em um sistema remoto com uma senha. No entanto, o ideal é configurar a autenticação baseada em chave.
O que é Autenticação Baseada em Chave?
A autenticação baseada em chaves cria dois pares de chaves chamados de chave privada e chave pública. A chave privada é encontrada no computador do usuário e foi protegida e mantida em segredo. A chave pública pode ser disponibilizada para qualquer pessoa ou armazenada em qualquer servidor que você queira acessar. Se você tentar se conectar usando um par de chaves, o servidor usará a chave pública para gerar uma mensagem para o computador do usuário. O usuário só pode ler a mensagem usando uma chave privada. O computador do usuário envia então uma resposta de volta para o servidor e o servidor sabe que o usuário é legítimo. Depois de configurar a chave, todo o processo é concluído automaticamente em segundo plano.
Como criar chaves SSH
As chaves SSH devem ser geradas no computador a partir do qual você deseja fazer login. Geralmente, este é o seu computador local. Digite o seguinte na linha de comando:
|
1 |
ssh-keygen -t rsa |
Em seguida, aceite os padrões pressionando a TECLA ENTER. Isso gerará suas chaves em ~/.ssh/id_rsa.pub e ~/.ssh/id_rsa. Em seguida, digite o comando abaixo para mudar para o diretório .ssh:
|
1 |
cd ~/.ssh |
Estas são as permissões dos arquivos:
|
1 |
ls -l |

Como você pode ver, apenas o proprietário pode ler e gravar o arquivo id_rsa. Portanto, você deve mantê-lo seguro. No entanto, você pode compartilhar o arquivo id_rsa.pub e ter as permissões apropriadas para esta atividade. O próximo passo é transferir a chave pública para o servidor usando esta sintaxe:
|
1 |
ssh-copy-id remote_host |
Isso inicia uma sessão SSH e você deve usar uma senha para autenticação. Depois de inserir a senha, sua chave pública será copiada para o arquivo de chaves autorizadas do servidor para que você possa fazer login na próxima vez sem uma senha.
Como desativar a autenticação por senha
Se uma chave SSH for gerada, você poderá melhorar a segurança do servidor desativando a autenticação apenas por senha. Você pode fazer login no servidor usando a chave privada com a chave pública instalada no servidor em vez de usar o console.
Nota: Certifique-se de ter instalado a chave pública no servidor antes de prosseguir com esta etapa. Caso contrário, você será bloqueado!
Abra o arquivo de configuração do sshd usando este comando:
|
1 |
sudo nano /etc/ssh/sshd_config |
Encontre e desmarque a linha que faz a verificação de autenticação por senha excluindo o # no início. Então você pode alterar o valor para “no”:
|
1 |
PasswordAuthentication no |
O PubkeyAuthentication e o ChallengeResponseAuthentication são definidos por padrão e devem ser parecidos com isto:
|
1 2 |
PubkeyAuthentication yes ChallengeResponseAuthentication no |
Você não deve alterar essas duas configurações. Depois disso, salve o arquivo e feche-o assim que fizer as alterações. Em seguida, use o comando abaixo para reiniciar o daemon do SSH:
|
1 |
sudo systemctl restart ssh |
Finalmente, você desativou a autenticação por senha, e seu servidor só poderá ser acessado usando a autenticação por chave SSH.
Conclusão
Neste tutorial, mostramos como usar o SSH para se conectar a um servidor remoto de forma segura no Ubuntu. Aprender a usar o SSH é fundamental se você for um administrador de sistemas, portanto, após dominar este tutorial, você poderá prosseguir com funcionalidades mais avançadas do SSH.
Boa computação!
Comentários
Nenhum comentário ainda. Seja o primeiro.