Objetivo: Configurar cada TTY virtual (Ctrl+Alt+F1, F2, etc.) para conectar automaticamente a um servidor SSH diferente, sem exigir login local.
1. Métodos Disponíveis
Método | Vantagens | Desvantagens |
---|---|---|
Substituir getty por SSH (systemd) | Automático, reinicia se cair | Requer configuração manual por TTY |
Auto-SSH via .profile | Simples de configurar | Volta ao shell local se desconectar |
Multiplexadores (tmux /byobu ) | Flexível, múltiplas sessões | Requer interação manual |
Editar /etc/passwd | Radical, sem shell local | Perde acesso local ao TTY |
▶ Recomendação: Método 1 (systemd) é o mais robusto.
2. Configuração Automática (Sem Login Local)
(Recomendado) Usando systemd
para SSH Direto
Passo 1: Crie um serviço para cada TTY (ex.: TTY2 → Servidor1).
sudo nano /etc/systemd/system/ssh-tty2.service
Conteúdo (ajuste user@servidor
):
[Unit]
Description=SSH automático para Servidor1 (TTY2)
After=network.target
[Service]
ExecStart=/usr/bin/ssh -o "StrictHostKeyChecking=no" user@servidor1
Restart=always
RestartSec=5
StandardInput=tty
StandardOutput=tty
TTYPath=/dev/tty2
TTYReset=yes
TTYVHangup=yes
[Install]
WantedBy=multi-user.target
Passo 2: Desative o getty
padrão e ative o serviço SSH.
sudo systemctl mask [email protected] # Desativa login local
sudo systemctl enable --now ssh-tty2.service # Ativa SSH automático
Repita para outros TTYs (TTY3, TTY4, etc.).
Configurar SSH Sem Senha (Opcional)
Para evitar prompts de senha:
ssh-keygen -t ed25519 # Gere chaves SSH (se já não tiver)
ssh-copy-id user@servidor1 # Copie a chave para o servidor
Agora o SSH loga automaticamente.
3. Alternativas
a) Usando .profile
para Auto-SSH (Simples, mas menos robusto)
Edite ~/.profile
:
if [[ $(tty) == "/dev/tty2" ]]; then
ssh user@servidor1
elif [[ $(tty) == "/dev/tty3" ]]; then
ssh user@servidor2
fi
Problema: Se o SSH cair, volta ao shell local.
b) Usando tmux
ou byobu
para Multiplexação
Em um único TTY, você pode gerenciar várias sessões:
tmux new-session -s servidor1 "ssh user@servidor1"
Vantagem: Flexível, mas requer comando manual.
c) Solução Radical (Substituir Shell por SSH)
Edite /etc/passwd
(não recomendado):
usuario:x:1000:1000:SSH Automático:/home/usuario:/usr/bin/ssh user@servidor1
Cuidado: Remove acesso local ao TTY.
4. Como Voltar ao Padrão
sudo systemctl unmask [email protected] # Restaura o getty
sudo systemctl disable ssh-tty2.service # Desativa o SSH automático
5. Resumo Final
✅ Melhor método: systemd
+ serviço personalizado (robusto, reinicia automaticamente).
🔧 Alternativa rápida: .profile
+ autologin SSH (simples, mas menos confiável).
🔄 Para múltiplas sessões: tmux
/byobu
em um único TTY.
Pronto! Agora você pode:
- Acessar Ctrl+Alt+F2 → Conexão direta ao
servidor1
. - Acessar Ctrl+Alt+F3 → Conexão direta ao
servidor2
. - Sem digitar login local, sem intervenção manual.