Linux服务器远程管理教程_SSH配置与密钥认证实践

16次阅读

ssh密钥认证是linux服务器最安全远程管理方式,需启用SSHD服务、生成ed25519密钥对、部署公钥至authorized_keys、禁用密码登录,并可通过ssh-config简化连接。

Linux服务器远程管理教程_SSH配置与密钥认证实践

Linux服务器远程管理最常用、最安全的方式就是SSH,而密钥认证比密码登录更可靠、更高效。只要配置正确,一次设置长期受益,还能有效防止暴力破解。

启用并检查SSH服务

大多数Linux发行版默认已安装OpenSSH服务,但未必开机自启。先确认服务状态:

  • 运行 systemctl status sshdcentos/RHEL)或 systemctl status sshubuntu/debian)查看是否运行
  • 若未启动,执行 systemctl start sshd 并设为开机自启:systemctl enable sshd
  • 防火墙需放行22端口(或你自定义的SSH端口),例如:ufw allow 22firewall-cmd –permanent –add-port=22/tcp

生成并部署SSH密钥对

密钥认证的核心是“本地私钥 + 服务器公钥”配对。不要在服务器上生成密钥,应在你日常使用的终端(如macwindows的WSL)中操作:

  • 执行 ssh-keygen -t ed25519 -C “your_email@example.com”(推荐ed25519算法,速度快且安全性高)
  • 按回车接受默认路径(~/.ssh/id_ed25519),可选设密钥口令(passphrase)增强本地防护
  • ssh-copy-id user@server_ip 自动将公钥(id_ed25519.pub)追加到服务器的 ~/.ssh/authorized_keys
  • ssh-copy-id 不可用,可手动复制公钥内容,登录服务器后粘贴进 ~/.ssh/authorized_keys,注意权限设为600:chmod 600 ~/.ssh/authorized_keys

禁用密码登录,强化安全

密钥就绪后,应关闭密码认证,彻底杜绝暴力尝试。编辑服务器上的SSH主配置文件

  • 运行 sudo nano /etc/ssh/sshd_config
  • 找到并修改两行:
    PasswordAuthentication no
    PermitRootLogin no(禁止root直接登录,推荐用普通用户+sudo)
  • 保存后重启服务:sudo systemctl restart sshd
  • ⚠️ 操作前务必确保当前密钥已验证可用(新开一个终端测试登录),避免被锁在外

进阶建议:提升便捷性与可维护性

日常使用中,几个小调整能让SSH更顺手:

  • 在本地 ~/.ssh/config 中添加主机别名,例如:
    Host myserver
        HostName 192.168.1.100
        User admin
        IdentityFile ~/.ssh/id_ed25519

    之后只需输入 ssh myserver 即可连接
  • 考虑修改默认端口(如改为2222),虽不能替代密钥,但能减少扫描日志干扰;记得同步更新防火墙和sshd_config中的 Port 配置
  • 定期轮换密钥:删除旧公钥、生成新密钥对、重新部署,尤其当本地设备丢失或人员变动时
text=ZqhQzanResources