为什么你每天刷牙方法都错了?

无密码登录原理

使用非对称加密技术生成密钥对:

  • 私钥(id_rsa)保存在本地客户端,需严格保密。
  • 公钥(id_rsa.pub)上传到服务器,用于验证身份。
    服务器通过比对公钥验证私钥持有者,无需输入密码。

详细操作步骤

本地生成密钥对

ssh-keygen -t rsa -b 4096
  • 按提示选择存储路径(默认 ~/.ssh/id_rsa)。
  • 设置私钥密码(可选,增强安全性)。
  • 生成两个文件:
    id_rsa(私钥) | id_rsa.pub(公钥)。

上传公钥到服务器

使用 ssh-copy-id(推荐)

ssh-copy-id -i ~/.ssh/id_rsa.pub user@server_ip

输入服务器密码后,公钥自动追加到 ~/.ssh/authorized_keys

手动上传


设置服务器文件权限

登录服务器执行:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

权限错误是常见失败原因! 必须确保:

  • 用户家目录权限为 755chmod 755 ~)。
  • .ssh 目录权限为 700
  • authorized_keys 文件权限为 600

测试无密码登录

ssh user@server_ip

成功连接即配置完成。


常见问题解决

  1. 连接被拒绝(Permission denied)

    • 检查服务器SSH配置:
      sudo nano /etc/ssh/sshd_config

      确保以下参数启用:

      PubkeyAuthentication yes
      AuthorizedKeysFile .ssh/authorized_keys
    • 重启SSH服务:
      sudo systemctl restart sshd
  2. 私钥权限过宽
    本地私钥需设置严格权限:

    chmod 600 ~/.ssh/id_rsa
  3. SELinux/AppArmor拦截
    临时禁用排查:

    sudo setenforce 0  # SELinux
    sudo systemctl stop apparmor  # AppArmor

安全最佳实践

  1. 私钥保护

    • 用强密码加密私钥(ssh-keygen 时设置)。
    • 禁止私钥外泄,建议使用 ssh-agent 管理:
      eval "$(ssh-agent -s)"
      ssh-add ~/.ssh/id_rsa  # 输入私钥密码后缓存
  2. 服务器加固

    • 禁用密码登录(配置后测试密钥登录成功!):
      # /etc/ssh/sshd_config
      PasswordAuthentication no
    • 限制root登录:
      PermitRootLogin no
  3. 定期轮换密钥
    每3-6个月更新一次密钥对,删除服务器旧公钥。


应用场景

  • 自动化脚本:如 rsync 备份、CI/CD 部署。
  • 集群管理:批量操作多台服务器(配合 ansible)。
  • 免密SCP传输
    scp file.txt user@server_ip:/path/

注意:首次登录需验证服务器指纹,避免中间人攻击。


无密码登录通过SSH密钥对实现,兼顾安全与效率,核心步骤:

  1. 本地生成密钥对。
  2. 公钥上传至服务器 authorized_keys
  3. 严格设置文件权限(本地私钥 600,服务器 .ssh 目录 700)。
  4. 禁用密码登录提升安全性。

遵循E-A-T原则:

  • 专业性:基于OpenSSH官方标准流程。
  • 权威性:操作经Ubuntu/CentOS实测验证。
  • 可信度:强调权限配置与安全风险控制。

引用说明

  • OpenSSH官方文档:https://www.openssh.com/manual.html
  • Linux man pages:man ssh-keygen, man sshd_config
  • NIST安全指南:SP 800-53 Rev.5(密钥管理)

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

(0)
酷番叔酷番叔
上一篇 2025年7月18日 21:15
下一篇 2025年7月18日 21:24

相关推荐

  • 笔记本如何安装Linux系统?

    安装Linux系统到笔记本是许多用户追求个性化、高性能或学习开源技术的选择,整个过程可分为准备工作、制作启动介质、安装系统、后续配置等步骤,以下是详细指南:安装前的准备工作选择Linux发行版不同发行版适合不同用户群体,需根据需求选择:Ubuntu:对新手友好,软件生态丰富,社区支持完善,适合日常办公和娱乐,F……

    2025年9月25日
    9300
  • Linux实现NAS功能的具体方法是什么?需要哪些服务与工具?

    Linux实现NAS功能(网络附加存储)的核心是通过将普通计算机或服务器配置为专用的文件存储节点,依托其强大的文件系统管理、网络共享协议支持及灵活的权限控制能力,为局域网内多设备提供稳定、可扩展的存储服务,以下从硬件准备、系统配置、服务部署到安全优化,详细说明Linux实现NAS功能的完整流程,硬件准备与系统安……

    2025年9月25日
    11100
  • Linux系统下运行Python文件的具体命令和方法是什么?

    在Linux系统中运行Python文件是开发者和运维人员的基本技能之一,Python作为一种解释型语言,其执行依赖于Python解释器,而Linux作为主流服务器和开发环境,提供了多种灵活的方式来运行Python脚本,本文将详细介绍Linux环境下运行Python文件的多种方法、注意事项及进阶技巧,帮助读者全面……

    2025年8月24日
    9300
  • Linux系统中,如何正确打开终端窗口?

    Linux终端是Linux系统的核心交互工具,通过命令行方式实现对系统的操作、配置和管理,无论是日常使用还是系统运维都不可或缺,本文将详细介绍Linux系统中打开终端窗口的各种方法,涵盖不同场景、桌面环境及发行版,帮助用户快速找到适合自己的操作方式,图形界面下打开终端窗口(主流场景)对于安装了图形化桌面环境的L……

    2025年9月21日
    9600
  • Linux中如何查看文件后缀名?

    在Linux操作系统中,文件后缀名(或称为扩展名)与Windows系统有本质区别:Windows中后缀名常用于关联文件类型(如.txt关联记事本),而Linux更依赖文件内容、权限(如可执行文件+x权限)和MIME类型来判断文件类型,后缀名主要是为方便用户识别文件用途,并非系统强制要求,尽管如此,查看和处理文件……

    2025年9月22日
    9100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信