如何快速入睡

密钥登录的核心优势

  1. 安全性
    • 私钥存储在本地,公钥在服务器,破解难度远高于密码。
    • 支持禁用密码登录,彻底杜绝密码爆破风险。
  2. 便捷性

    免去每次输入密码的麻烦,适合自动化脚本(如CI/CD)。

  3. 符合安全规范

    金融、云计算等场景强制要求密钥登录(如AWS/Aliyun)。


密钥登录配置步骤

步骤1:本地生成密钥对(在客户端操作)

ssh-keygen -t ed25519 -C "your_email@example.com"  # 推荐ed25519算法
  • 操作提示
    • 按回车使用默认存储路径(~/.ssh/id_ed25519)。
    • 设置密钥密码(Key Passphrase)可增加二次保护(可选)。
  • 生成文件
    • 私钥:~/.ssh/id_ed25519(权限需为600)
    • 公钥:~/.ssh/id_ed25519.pub

⚠️ 关键权限设置
执行命令确保私钥安全:
chmod 600 ~/.ssh/id_ed25519

步骤2:上传公钥到服务器

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip
  • 输入服务器密码后,公钥会自动写入 ~/.ssh/authorized_keys
  • 手动方案(若无ssh-copy-id):
    cat ~/.ssh/id_ed25519.pub | ssh user@server_ip "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys"

步骤3:服务器端配置(以OpenSSH为例)

  1. 编辑SSH配置文件:
    sudo nano /etc/ssh/sshd_config
  2. 修改以下参数:
    PubkeyAuthentication yes     # 启用密钥认证
    PasswordAuthentication no    # 禁用密码登录(测试后再启用!)
    AuthorizedKeysFile .ssh/authorized_keys
  3. 重启SSH服务:
    sudo systemctl restart sshd

步骤4:测试密钥登录

ssh -i ~/.ssh/id_ed25519 user@server_ip
  • 成功登录后,再禁用密码登录(避免配置错误被锁)。

安全加固与故障处理

必做权限检查

chmod 600 ~/.ssh/authorized_keys
  • 权限错误会导致登录失败(常见错误:Permission denied (publickey))。

禁用密码登录(增强安全)

确认密钥登录成功后,在sshd_config中设置:

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

故障排查

  • 登录失败
    1. 检查客户端私钥路径:ssh -i /path/to/private_key user@ip
    2. 查看服务器日志:sudo tail -f /var/log/auth.log
    3. 临时启用密码登录:sudo systemctl restart sshd
  • 备份密钥

    私钥丢失无法恢复!建议加密备份到安全位置。


高级场景

  • 多密钥管理
    在客户端~/.ssh/config中配置:

    Host myserver
      HostName server_ip
      User user
      IdentityFile ~/.ssh/custom_key

    直接使用 ssh myserver 登录。

  • 跨平台使用
    • Windows:用PuTTYgen导入私钥,或WSL直接使用ssh-keygen
    • macOS/Linux:原生支持OpenSSH。

密钥登录是Linux服务器安全的基石,通过生成密钥对、上传公钥、配置服务端三步操作,即可实现免密安全登录。务必在测试后禁用密码登录,并定期审计密钥使用情况,企业环境建议结合证书颁发机构(CA)进一步强化信任链。

引用说明

  • OpenSSH官方文档:https://www.openssh.com/manual.html
  • Linux man 手册(命令:man ssh-keygen, man sshd_config
  • NIST安全指南(SP 800-53)关于密钥管理的要求

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4949.html

(0)
酷番叔酷番叔
上一篇 2025年6月18日 22:55
下一篇 2025年6月18日 23:57

相关推荐

  • Linux下如何快速搭建JSP环境?

    环境准备(必需组件)安装JDKsudo apt updatesudo apt install openjdk-11-jdk # 推荐JDK 8/11/17java -version # 验证安装安装Tomcat服务器sudo apt install tomcat9 tomcat9-admin # Ubuntu……

    2025年7月5日
    800
  • 为什么挂载是成功的关键?

    挂载(Mounting)指操作系统将存储设备(如硬盘分区、U盘)的文件系统连接到目录树中的某个指定目录(挂载点),使该设备的内容可通过该目录访问和使用。

    2025年7月9日
    1000
  • 工作效率翻倍?必备快捷键!

    在Linux系统中,工作区(Workspace)是提升多任务效率的核心功能,它允许用户将不同应用分散到多个虚拟桌面,避免窗口杂乱,以下详细介绍切换工作区的多种方法,涵盖主流桌面环境和进阶技巧,所有操作均基于最新Linux发行版(如Ubuntu 22.04、Fedora 36),不同桌面环境默认快捷键略有差异,但……

    2025年7月2日
    1100
  • 如何设置IP地址和子网掩码?

    在Linux系统中设置IP地址是网络管理的基础操作,可通过命令行工具或配置文件实现,以下是详细方法,涵盖临时配置与永久生效方案,适用于主流通用发行版(如Ubuntu、CentOS、Debian):临时设置IP(重启失效)方法1:使用 ip 命令(推荐)# 设置默认网关sudo ip route add defa……

    2025年7月12日
    1200
  • 如何重新加载配置而无需重启?

    在Linux系统中,NFS(Network File System)是实现跨网络共享文件的关键服务,当修改NFS配置(如/etc/exports文件)或遇到服务异常时,重启NFS是必要的操作,以下是详细步骤,覆盖主流Linux发行版:重启NFS的核心步骤CentOS/RHEL 7+ 或 Fedora(使用sys……

    3天前
    600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信