插件窝 干货文章 如何在Linux上配置高可用的远程登录(如SSH和Telnet)

如何在Linux上配置高可用的远程登录(如SSH和Telnet)

SSH 配置 sudo 使用 994    来源:    2025-04-16

Linux高可用远程登录配置指南

SSH高可用配置方案

1. 使用SSH密钥认证与多服务器配置

推荐方案:配置多台SSH服务器并使用DNS轮询或负载均衡器

# 在所有SSH服务器上生成相同的密钥对
sudo ssh-keygen -t rsa -b 4096 -f /etc/ssh/ssh_host_rsa_key
sudo ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
sudo ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key

# 将生成的密钥复制到其他SSH服务器

2. 配置负载均衡

使用HAProxy配置示例:

frontend ssh_frontend
    bind *:22
    default_backend ssh_backend

backend ssh_backend
    balance roundrobin
    server ssh1 192.168.1.101:22 check
    server ssh2 192.168.1.102:22 check backup

3. 使用Keepalived实现VIP故障转移

# 安装Keepalived
sudo apt-get install keepalived  # Debian/Ubuntu
sudo yum install keepalived     # CentOS/RHEL

# 配置示例 (/etc/keepalived/keepalived.conf)
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass yourpassword
    }
    virtual_ipaddress {
        192.168.1.100/24
    }
}

Telnet高可用配置方案

注意:Telnet是不安全的协议,建议仅在内部网络使用或升级到SSH

1. 使用xinetd管理Telnet服务

# 安装必要软件
sudo apt-get install telnetd xinetd  # Debian/Ubuntu
sudo yum install telnet-server xinetd # CentOS/RHEL

# 配置/etc/xinetd.d/telnet
service telnet
{
    flags = REUSE
    socket_type = stream
    wait = no
    user = root
    server = /usr/sbin/in.telnetd
    log_on_failure += USERID
    disable = no
}

2. 配置负载均衡

类似SSH方案,可以使用HAProxy或Nginx进行负载均衡:

frontend telnet_frontend
    bind *:23
    default_backend telnet_backend

backend telnet_backend
    balance roundrobin
    server telnet1 192.168.1.101:23 check
    server telnet2 192.168.1.102:23 check backup

安全增强措施

  1. 禁用root直接登录:

    # 在/etc/ssh/sshd_config中设置
    PermitRootLogin no
    
  2. 更改默认端口:

    Port 2222  # 在/etc/ssh/sshd_config中修改
    
  3. 启用防火墙限制:

    sudo ufw allow 2222/tcp  # Ubuntu
    sudo firewall-cmd --permanent --add-port=2222/tcp  # CentOS
    
  4. 使用Fail2Ban防止暴力破解:

    sudo apt-get install fail2ban
    sudo systemctl enable fail2ban
    sudo systemctl start fail2ban
    

监控与维护

  1. 设置日志监控:

    # 监控SSH登录尝试
    tail -f /var/log/auth.log | grep sshd  # Debian/Ubuntu
    tail -f /var/log/secure | grep sshd   # CentOS/RHEL
    
  2. 定期更新SSH软件包:

    sudo apt-get update && sudo apt-get upgrade openssh-server  # Debian/Ubuntu
    sudo yum update openssh-server        # CentOS/RHEL
    

最佳实践建议

  1. 优先使用SSH:完全替代Telnet,因为Telnet传输所有数据(包括密码)都是明文的
  2. 实现双因素认证:使用Google Authenticator等工具增强安全性
  3. 定期轮换密钥:建议每3-6个月更换一次主机密钥
  4. 使用跳板机:限制直接访问生产服务器,通过跳板机中转

如需更详细的配置指导或遇到特定问题,可以提供更多环境信息,我可以给出更针对性的解决方案。