Post

Tutorial Completo: Otimização do Uso do SSH com GNOME Terminal

Aprenda a configurar e gerenciar conexões SSH em sistemas Linux, incluindo automação, personalização e ferramentas complementares.

Tutorial Completo: Otimização do Uso do SSH com GNOME Terminal

Sumário

  1. Instalação e Configuração Básica do SSH
  2. Gerenciamento de Conexões SSH com Aliases e Scripts
  3. Usando o SSH Agent para Chaves com Senha
  4. Personalização do GNOME Terminal para SSH
  5. Ferramentas Complementares para Gerenciar Conexões SSH
  6. Automação Avançada com SSH e Scripts
  7. Segurança Avançada com SSH
  8. Monitoramento Remoto de Servidores via SSH
  9. Dicas de Automação Avançada com SSH
  10. Segurança Avançada com Chaves SSH

Parte 1: Instalação e Configuração Básica do SSH

1. O que é o SSH e por que usá-lo?

O SSH (Secure Shell) é um protocolo seguro para acessar e gerenciar sistemas remotamente, criptografando a comunicação entre o cliente e o servidor. Muito usado por administradores de sistemas e desenvolvedores, ele permite a execução de comandos, transferência de arquivos e automação de processos entre computadores.

2. Instalando o OpenSSH no Ubuntu

No Ubuntu, tanto o cliente quanto o servidor SSH podem ser instalados via terminal. Para garantir que tudo esteja configurado corretamente:

  1. Instalar o cliente SSH: O cliente SSH já vem pré-instalado na maioria das distribuições, mas se não estiver, você pode instalá-lo com:

    1
    2
    
    sudo apt update
    sudo apt install openssh-client
    
  2. Instalar o servidor SSH (opcional): Caso você deseje permitir que outros se conectem ao seu computador via SSH, instale o servidor:

    1
    
    sudo apt install openssh-server
    
  3. Verificar se o servidor SSH está rodando:

    1
    
    sudo systemctl status ssh
    
  4. Iniciar e habilitar o serviço SSH:

    1
    2
    
    sudo systemctl start ssh
    sudo systemctl enable ssh
    

3. Conectando-se a um servidor via SSH

Para se conectar a um servidor remoto, use o seguinte comando básico:

1
ssh usuario@host

Por exemplo:

1
ssh joao@192.168.1.10

Você será solicitado a inserir a senha do usuário remoto. Para evitar ter que digitar a senha sempre, pode-se configurar a autenticação por chave pública.

4. Gerando um Par de Chaves SSH (RSA e Ed25519)

Gerando uma chave RSA (padrão)

Para gerar um par de chaves RSA, use o comando:

1
ssh-keygen -t rsa -b 4096 -C "seu-email@example.com"
  • -t rsa: Especifica o tipo de chave como RSA.
  • -b 4096: Define o tamanho da chave em 4096 bits para maior segurança.
  • -C: Adiciona um comentário à chave, como seu e-mail.
Gerando uma chave Ed25519 (mais segura e eficiente)

O Ed25519 é um algoritmo de chave pública mais moderno e eficiente que o RSA, especialmente recomendado para novos pares de chaves.

Para gerar uma chave Ed25519:

1
ssh-keygen -t ed25519 -C "seu-email@example.com"

O processo de criação da chave perguntará onde salvar a chave (pode aceitar o padrão: ~/.ssh/id_ed25519) e se deseja adicionar uma senha de proteção para a chave privada (altamente recomendado).

5. Copiando a Chave Pública para o Servidor

Agora que sua chave pública foi gerada, envie-a para o servidor remoto com o seguinte comando:

1
ssh-copy-id usuario@host

Isso adicionará sua chave pública ao arquivo ~/.ssh/authorized_keys do servidor remoto, permitindo a conexão sem senha.


Parte 2: Gerenciamento de Conexões SSH com Aliases e Scripts

1. Configurando o Arquivo SSH Config

O arquivo ~/.ssh/config permite configurar diferentes servidores para facilitar as conexões. Ele oferece uma maneira de organizar e automatizar as conexões SSH.

  1. Criar ou editar o arquivo ~/.ssh/config:

    1
    
    nano ~/.ssh/config
    
  2. Exemplo de configuração do arquivo ~/.ssh/config:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    Host servidor1
        HostName 192.168.1.10
        User joao
        IdentityFile ~/.ssh/id_rsa
        Port 22
    
    Host servidor2
        HostName servidor2.com
        User maria
        IdentityFile ~/.ssh/id_ed25519
        Port 2200
    

    Com isso, você pode se conectar aos servidores configurados usando comandos simples, como:

    1
    
    ssh servidor1
    

    ou

    1
    
    ssh servidor2
    

2. Criando Aliases de Terminal para Conexões SSH

Você pode simplificar ainda mais o processo de conexão criando aliases no seu shell (como bash ou zsh):

  1. Abra o arquivo de configuração do shell:

    1
    
    nano ~/.bashrc
    
  2. Adicione aliases para as conexões SSH:

    1
    2
    
    alias servidor1="ssh servidor1"
    alias servidor2="ssh servidor2"
    
  3. Recarregue o arquivo de configuração do shell:

    1
    
    source ~/.bashrc
    

Agora você pode simplesmente digitar servidor1 no terminal para conectar-se ao servidor.

3. Automatizando Tarefas com Scripts SSH

Você pode criar scripts para automatizar tarefas repetitivas, como backups ou atualizações de sistemas remotos.

  1. Exemplo de script simples de backup via SSH:

    Crie um script chamado backup_servidor.sh:

    1
    
    nano ~/scripts/backup_servidor.sh
    

    Adicione o seguinte conteúdo:

    1
    2
    3
    4
    
    #!/bin/bash
    # Script para realizar backup remoto via SSH
    
    rsync -avz -e ssh /caminho/local/ usuario@servidor:/caminho/remoto/
    
  2. Dê permissão de execução ao script:

    1
    
    chmod +x ~/scripts/backup_servidor.sh
    

Agora você pode executar o script com ./backup_servidor.sh e ele fará o backup automaticamente.


Parte 3: Usando o SSH Agent para Chaves com Senha

Se você criou sua chave SSH com uma senha para maior segurança, usar o SSH Agent facilita o gerenciamento, evitando ter que digitar a senha a cada conexão.

1. Carregar a Chave no SSH Agent

O SSH Agent guarda as chaves privadas em memória, pedindo a senha apenas uma vez por sessão.

  1. Inicie o SSH Agent:

    1
    
    eval "$(ssh-agent -s)"
    
  2. Adicione a chave protegida ao SSH Agent:

    1
    
    ssh-add ~/.ssh/id_rsa
    

    Se estiver usando uma chave Ed25519, o comando seria:

    1
    
    ssh-add ~/.ssh/id_ed25519
    

    O SSH Agent pedirá a senha da chave privada e a manterá em memória.

  3. Verifique as chaves carregadas:

    1
    
    ssh-add -l
    

2. Automatizando o Carregamento da Chave

Você pode configurar o terminal para adicionar automaticamente suas chaves no início da sessão:

  1. Edite o arquivo ~/.bashrc:

    1
    
    nano ~/.bashrc
    
  2. Adicione o seguinte bloco de código:

    1
    2
    3
    4
    
    if [ -z "$SSH_AUTH_SOCK" ]; then
        eval "$(ssh-agent -s)"
        ssh-add ~/.ssh/id_ed25519
    fi
    
  3. Recarregue o arquivo ~/.bashrc:

    1
    
    source ~/.bashrc
    

Agora, ao iniciar uma nova sessão de terminal, o SSH Agent será iniciado automaticamente e a chave será carregada.


Parte 4: Personalização do GNOME Terminal para SSH

1. Criando Perfis Personalizados no GNOME Terminal

O GNOME Terminal permite criar perfis customizados que facilitam a conexão automática via SSH.

  1. Abra o GNOME Terminal e vá em Editar > Preferências.

  2. Crie um novo perfil:

    • Clique em Novo e dê um nome, como Servidor1.
    • Na aba Comando, ative a opção Executar comando como shell de login e adicione:

      1
      
      ssh servidor1
      

    Agora, ao selecionar esse perfil, o GNOME Terminal se conectará automaticamente ao servidor.

2. Atalhos de Teclado para Perfis SSH

Você pode configurar atalhos no GNOME Terminal para abrir perfis SSH rapidamente. Em Editar > Preferências > Atalhos de Teclado, associe um atalho ao perfil criado.


Parte 5: Ferramentas Complementares para Gerenciar Conexões SSH

Gerenciar várias conexões SSH manualmente pode se tornar complicado, especialmente em ambientes de administração de sistemas com muitos servidores. Algumas ferramentas podem ajudar a melhorar a produtividade e eficiência no gerenciamento de múltiplos servidores via SSH.

1. Usando o tmux para Sessões SSH Persistentes

O tmux é um multiplexador de terminais que permite que você mantenha sessões persistentes, mesmo que a conexão SSH seja interrompida. Isso é especialmente útil para administradores que precisam de sessões contínuas em vários servidores.

Instalando o tmux

No Ubuntu, o tmux pode ser instalado diretamente via o gerenciador de pacotes:

1
sudo apt install tmux
Comandos básicos do tmux
  • Iniciar uma nova sessão:

    1
    
    tmux new -s nome_sessao
    

    Isso inicia uma nova sessão chamada nome_sessao.

  • Desconectar da sessão sem fechá-la:

    Pressione Ctrl + b, depois d. Isso “desanexa” sua sessão do terminal, permitindo que você a recupere mais tarde.

  • Reanexar uma sessão tmux existente:

    1
    
    tmux attach -t nome_sessao
    
Uso avançado com SSH

Com o tmux, você pode manter sessões SSH persistentes. Por exemplo, ao conectar-se a um servidor e iniciar uma sessão tmux, mesmo que sua conexão SSH caia, a sessão no servidor continua rodando. Quando você se reconectar, basta usar o comando tmux attach para retomar de onde parou.

2. Gerenciador de Conexões Remotas: Mosh

O Mosh (Mobile Shell) é uma alternativa ao SSH que lida melhor com conexões instáveis e lentas. Ele é ideal para situações onde a conectividade de rede pode variar, como ao trabalhar em ambientes móveis ou em conexões Wi-Fi de baixa qualidade.

Instalando o Mosh

Instale o Mosh tanto no cliente quanto no servidor:

1
sudo apt install mosh
Conectando-se com Mosh

Para se conectar a um servidor usando Mosh:

1
mosh usuario@host

Ele funciona de maneira semelhante ao SSH, mas oferece maior tolerância a latências e quedas de conexão. Se a conexão for perdida, o Mosh tenta reconectar automaticamente sem interromper sua sessão.

3. Gerenciamento Gráfico com Remmina

O Remmina é uma ferramenta gráfica que facilita o gerenciamento de conexões SSH, RDP e VNC. Ele oferece uma interface intuitiva para administrar múltiplas conexões remotas em um só lugar.

Instalando o Remmina

Para instalar o Remmina:

1
sudo apt install remmina remmina-plugin-ssh
Usando o Remmina para SSH
  1. Abra o Remmina e clique em Nova Conexão.
  2. Configure os detalhes do servidor SSH (Host, Usuário, Porta) e, opcionalmente, salve a conexão para facilitar o acesso futuro.
  3. Agora, você pode gerenciar suas conexões SSH com uma interface gráfica amigável.

Parte 6: Automação Avançada com SSH e Scripts

Vamos explorar algumas técnicas mais avançadas de automação usando SSH, com foco em otimizar seu fluxo de trabalho para a administração de sistemas.

1. Executando Comandos Remotos com SSH

Uma das grandes vantagens do SSH é a capacidade de executar comandos em servidores remotos sem precisar fazer login interativo. Isso é útil para automatizar tarefas de administração e manutenção de servidores.

Executando um único comando via SSH:

Você pode executar um comando diretamente no servidor remoto sem abrir uma sessão SSH completa:

1
ssh usuario@servidor 'comando'

Exemplo:

1
ssh joao@192.168.1.10 'uptime'

Esse comando irá se conectar ao servidor e executar uptime, retornando o tempo de atividade do servidor diretamente no seu terminal local.

2. Transferindo Arquivos com scp e rsync

Além da execução de comandos, é comum transferir arquivos entre máquinas. O SSH oferece ferramentas como scp e rsync para facilitar essas transferências.

Usando scp (Secure Copy Protocol)

O scp é uma ferramenta simples para copiar arquivos de/para servidores via SSH:

  • Copiar um arquivo para um servidor remoto:

    1
    
    scp arquivo_local usuario@servidor:/caminho/remoto/
    
  • Copiar um arquivo do servidor remoto para o computador local:

    1
    
    scp usuario@servidor:/caminho/remoto/arquivo_remoto caminho_local/
    
Usando rsync para Transferências Eficientes

O rsync é uma ferramenta mais avançada, ideal para sincronizar diretórios grandes ou backups incrementais. Ele só transfere os arquivos que mudaram, economizando largura de banda e tempo.

Exemplo de uso do rsync com SSH:

1
rsync -avz -e ssh /caminho/local/ usuario@servidor:/caminho/remoto/

O parâmetro -e ssh garante que o rsync use o protocolo SSH para transferir os dados de forma segura.

3. Automação de Múltiplos Servidores com for e parallel

Se você precisa gerenciar múltiplos servidores, pode automatizar tarefas repetitivas usando um loop for ou o comando parallel.

Usando for para Conectar-se a Vários Servidores

Você pode usar o for em um script bash para executar comandos em vários servidores de uma só vez:

1
2
3
for server in servidor1 servidor2 servidor3; do
    ssh usuario@$server 'comando'
done

Exemplo de um loop que verifica o uso de disco em vários servidores:

1
2
3
for server in servidor1 servidor2 servidor3; do
    ssh joao@$server 'df -h'
done
Usando parallel para Executar Comandos em Paralelo

O GNU Parallel permite executar comandos em múltiplos servidores ao mesmo tempo, em vez de fazer um por vez como no for.

Instale o parallel com:

1
sudo apt install parallel

Exemplo de uso:

1
parallel -S servidor1,servidor2,servidor3 ssh {} 'uptime'

Isso executará o comando uptime em todos os servidores simultaneamente.


Parte 7: Segurança Avançada com SSH

A segurança é fundamental ao usar SSH, especialmente em ambientes de produção. Vamos abordar algumas práticas recomendadas para garantir que suas conexões SSH estejam bem protegidas.

1. Desabilitar Login por Senha e Usar Somente Chaves SSH

Para melhorar a segurança, é recomendável desabilitar a autenticação por senha e exigir o uso de chaves SSH. Isso reduz a chance de ataques de força bruta.

  1. Edite o arquivo de configuração do SSH no servidor:

    1
    
    sudo nano /etc/ssh/sshd_config
    
  2. Desabilite a autenticação por senha:

    Procure pela linha PasswordAuthentication e defina como no:

    1
    
    PasswordAuthentication no
    
  3. Reinicie o serviço SSH:

    1
    
    sudo systemctl restart ssh
    

2. Alterar a Porta Padrão do SSH

Outra técnica simples para aumentar a segurança é alterar a porta padrão do SSH (22) para uma porta não padrão, tornando ataques de força bruta menos prováveis.

  1. Edite o arquivo de configuração do SSH:

    1
    
    sudo nano /etc/ssh/sshd_config
    
  2. Altere a porta:

    Encontre a linha Port 22 e altere para uma nova porta, por exemplo:

    1
    
    Port 2222
    
  3. Reinicie o serviço SSH:

    1
    
    sudo systemctl restart ssh
    
  4. Conecte-se à nova porta:

    Sempre que se conectar ao servidor, especifique a nova porta:

    1
    
    ssh -p 2222 usuario@servidor
    

3. Usando Fail2Ban para Proteger Contra Ataques de Força Bruta

O Fail2Ban é uma ferramenta que monitora logs de autenticação e bloqueia automaticamente endereços IP que tentam acessar o servidor com falhas de login repetidas.

  1. Instalar o Fail2Ban:

    1
    
    sudo apt install fail2ban
    
  2. Configurar Fail2Ban para Monitorar SSH:

    Edite a configuração padrão:

    1
    
    sudo nano /etc/fail2ban/jail.local
    

    Adicione a seguinte configuração

para o SSH:

1
2
3
4
5
6
   [sshd]
   enabled = true
   port = 2222  # ou a porta que você usa
   logpath = /var/log/auth.log
   maxretry = 3
   bantime = 600
  1. Reinicie o Fail2Ban:

    1
    
    sudo systemctl restart fail2ban
    

Parte 8: Monitoramento Remoto de Servidores via SSH

Manter uma infraestrutura saudável e funcional requer monitoramento contínuo dos recursos do sistema, como uso de CPU, memória, disco e rede. Abaixo estão algumas abordagens para monitorar servidores de forma eficiente via SSH, além de ferramentas que podem ajudar no processo.

1. Monitoramento Simples com Comandos SSH

Você pode usar comandos básicos via SSH para monitorar rapidamente o status de um servidor. Veja alguns dos comandos mais úteis:

  • Verificar uso da CPU, memória e tempo de atividade:

    1
    
     ssh usuario@servidor 'top -bn1 | head -n 10'
    

    Esse comando usa o top para coletar informações básicas do sistema e as exibe no seu terminal local.

  • Verificar uso do disco:

    1
    
     ssh usuario@servidor 'df -h'
    

    O df exibe o uso do disco em um formato mais legível.

  • Verificar uso de memória detalhado:

    1
    
     ssh usuario@servidor 'free -m'
    

    O comando free mostra o consumo de memória RAM e swap.

  • Verificar status de rede:

    1
    
     ssh usuario@servidor 'netstat -tuln'
    

    O netstat exibe todas as conexões de rede ativas no servidor, incluindo as portas em uso.

2. Monitoramento Remoto com htop e nload

Usando htop para monitoramento interativo

O htop é uma versão mais interativa e amigável do top, oferecendo uma interface colorida e de fácil interpretação. Você pode instalá-lo e executá-lo remotamente via SSH.

  1. Instalar o htop:

    No servidor remoto:

    1
    
    sudo apt install htop
    
  2. Executar o htop remotamente:

    Conecte-se ao servidor e inicie o htop:

    1
    
    ssh usuario@servidor 'htop'
    

    O htop mostrará informações detalhadas do uso de CPU, memória, processos e muito mais, com uma interface interativa.

Usando nload para monitorar tráfego de rede

O nload é uma ferramenta que permite visualizar o tráfego de rede em tempo real, exibindo a taxa de transferência de entrada e saída, ideal para monitorar o uso da rede de um servidor.

  1. Instalar o nload:

    No servidor remoto:

    1
    
    sudo apt install nload
    
  2. Executar o nload remotamente:

    Conecte-se ao servidor e execute:

    1
    
    ssh usuario@servidor 'nload'
    

    O nload mostrará as estatísticas de rede em tempo real, separadas por interfaces de rede (eth0, wlan0, etc.).

3. Monitoramento de Logs com o tail

Muitas vezes, o monitoramento de logs em tempo real é essencial para detectar erros ou monitorar eventos específicos em sistemas Linux. O comando tail é bastante útil para esse tipo de tarefa.

  1. Monitorar logs do sistema:

    O tail -f permite seguir a atualização de um arquivo de log em tempo real. Por exemplo, para monitorar o log de autenticação SSH:

    1
    
    ssh usuario@servidor 'tail -f /var/log/auth.log'
    

    Isso exibirá as tentativas de login SSH em tempo real.

  2. Monitorar logs de aplicações:

    Se você deseja monitorar logs de uma aplicação específica (por exemplo, logs de um servidor web Apache):

    1
    
    ssh usuario@servidor 'tail -f /var/log/apache2/access.log'
    

    Você verá as requisições HTTP sendo registradas em tempo real.

4. Ferramentas de Monitoramento Avançadas com Glances

O Glances é uma ferramenta de monitoramento de sistemas que fornece uma visão detalhada e em tempo real de diversos aspectos, incluindo uso de CPU, memória, rede, disco e processos. Ele é ideal para obter uma visão completa do estado de um servidor em uma única interface.

Instalar o Glances

No servidor remoto:

1
sudo apt install glances
Executar o Glances remotamente:

Conecte-se ao servidor e inicie o Glances:

1
ssh usuario@servidor 'glances'

O Glances exibe de forma interativa todas as informações críticas sobre o servidor, e pode ser uma excelente alternativa ao htop ou nload, fornecendo um monitoramento mais abrangente.

5. Monitoramento Remoto com Nagios e Zabbix

Para soluções de monitoramento mais robustas e com alertas automáticos, ferramentas como Nagios e Zabbix são amplamente utilizadas em ambientes de produção.

Nagios

O Nagios é uma plataforma poderosa de monitoramento de rede e infraestrutura, que permite monitorar hosts, serviços e processos, com a capacidade de gerar alertas caso algo saia do normal.

  1. Instalar o Nagios no servidor:

    No Ubuntu, o processo de instalação do Nagios pode ser mais complexo, mas a documentação oficial fornece instruções detalhadas aqui.

  2. Configurar agentes remotos:

    O Nagios pode monitorar vários servidores remotos via NRPE (Nagios Remote Plugin Executor), que deve ser instalado em cada servidor que você deseja monitorar.

Zabbix

O Zabbix também é uma ferramenta de monitoramento abrangente, com uma interface gráfica rica e suporte para monitoramento em larga escala. O Zabbix é uma excelente escolha para monitorar redes, servidores, aplicações e serviços em um ambiente distribuído.

  1. Instalar o Zabbix no servidor:

    O processo de instalação varia, mas o Zabbix oferece pacotes específicos para Ubuntu e Debian, com guias de instalação disponíveis aqui.

  2. Configurar hosts para monitoramento remoto:

    O Zabbix requer que seus agentes sejam instalados nos servidores que você deseja monitorar, permitindo um controle e monitoramento detalhado em tempo real.


Parte 9: Dicas de Automação Avançada com SSH

1. Usando o Ansible para Automação de Infraestrutura

O Ansible é uma poderosa ferramenta de automação e gerenciamento de configuração que usa o SSH para executar tarefas remotas em múltiplos servidores. Ele é amplamente utilizado para orquestrar a implantação de software, configurar sistemas e automatizar tarefas repetitivas.

Instalar o Ansible

No Ubuntu, você pode instalar o Ansible com:

1
sudo apt install ansible
Exemplo de Playbook do Ansible

Um Playbook no Ansible é um arquivo YAML que define as tarefas que você deseja executar em seus servidores. Por exemplo, um playbook simples para instalar o Apache em vários servidores seria algo assim:

1
2
3
4
5
6
7
8
9
---
- hosts: webservers
  become: yes
  tasks:
    - name: Instalar Apache
      apt:
        name: apache2
        state: present
        update_cache: yes
Executar o Playbook

Você pode executar esse playbook com o seguinte comando:

1
ansible-playbook -i inventario.yml playbook.yml

No arquivo inventario.yml, você define os servidores em que o Ansible executará as tarefas:

1
2
3
4
5
6
webservers:
  hosts:
    servidor1:
      ansible_host: 192.168.1.10
    servidor2:
      ansible_host: 192.168.1.11

O Ansible, através do SSH, conecta-se a cada servidor e executa as tarefas definidas no playbook, como instalar pacotes ou copiar arquivos.

2. Automatizando Backups Remotos com rsync e Cron

Automatizar backups remotos é uma das tarefas mais comuns em administração de sistemas, e o rsync pode ser integrado ao cron para fazer isso de forma automática.

Configuração Básica de Backup com rsync

Crie um script de backup simples usando rsync:

1
2
#!/bin/bash
rsync -avz -e ssh /diretorio_local usuario@servidor:/diretorio_remoto

Salve o script, por exemplo, como backup.sh e torne-o executável:

1
chmod +x backup.sh
Agendando o Script com Cron

Abra o crontab para o usuário:

1
crontab -e

Adicione uma linha para agendar o script para rodar diariamente às 2:00 AM:

1
0 2 * * * /caminho/para/backup.sh

Com isso, o rsync será executado automaticamente todos os dias para sincronizar os arquivos com o servidor remoto.


Parte 10: Segurança Avançada com Chaves SSH

1. Utilizando o ssh-agent com Passphrases e Armazenamento Seguro

Como vimos anteriormente, o ssh-agent armazena chaves privadas em memória para que você não precise inserir a senha toda vez que se conectar a um servidor. Para maior segurança, sempre proteja suas chaves privadas com uma passphrase.

  • Adicionar a chave ao ssh-agent:

    1
    
     ssh-add ~/.ssh/id_ed25519
    

    O ssh-agent irá solicitar sua senha uma vez e armazená-la em cache até o fim da sessão.

2. Reforçando a Segurança com 2FA (Autenticação de Dois Fatores)

Adicionar uma camada extra de segurança com Autenticação de Dois Fatores (2FA) pode proteger ainda mais suas conexões SSH.

Instalar o Google Authenticator
  1. No servidor, instale o Google Authenticator:

    1
    
    sudo apt install libpam-google-authenticator
    
  2. Configure o Google Authenticator:

    1
    
    google-authenticator
    
  3. Siga as instruções para escanear o código QR com seu aplicativo de 2FA e configurar o processo no servidor.

  4. Edite o arquivo /etc/ssh/sshd_config para permitir o uso de 2FA:

    1
    
    ChallengeResponseAuthentication yes
    
  5. Reinicie o SSH:

    1
    
    sudo systemctl restart ssh
    

Agora, ao se conectar via SSH, você será solicitado a inserir um código de 2FA gerado pelo seu aplicativo.


This post is licensed under CC BY 4.0 by the author.