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

无密码登录原理

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

  • 私钥(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与Windows资源共享?

    通过Samba实现双向共享(推荐方案)Samba是Linux对SMB/CIFS协议的开源实现,完美兼容Windows共享协议,企业级应用验证其稳定性,操作步骤:Linux端安装Samba服务# Debian/Ubuntusudo apt update && sudo apt install sa……

    2025年7月7日
    5100
  • Linux下如何通过权限设置具体实现文件/目录只读写但不能删除?

    在Linux系统中,实现“只读写但不能删除”文件或目录的核心逻辑在于:文件/目录的删除权限由其父目录的权限控制,而非文件自身的权限,要阻止用户删除文件,需限制其对父目录的写入权限,同时保留对文件本身的读写权限,以下是具体实现方法、原理及操作步骤,涵盖基础权限管理、ACL(访问控制列表)及场景化案例,核心原理:删……

    2025年8月29日
    3400
  • 如何快速包含关键信息?

    通过系统包管理器安装(推荐新手)优势:自动处理依赖关系,一键安装,适合快速部署,适用场景:无需特定版本或最新功能,步骤:更新软件源(确保获取最新版本):sudo apt update # Debian/Ubuntusudo dnf update # Fedorasudo pacman -Sy # Arch/Ma……

    2025年7月24日
    4600
  • Linux如何将含有英文的日期进行转换?

    在Linux系统中,处理英文日期转换是日常运维、数据分析、日志处理等场景中的常见需求,由于英文日期格式多样(如“Mon Jan 15 2024”“2024-01-15T14:30:00Z”“January 15, 2024”等),且可能涉及时区、格式标准化等问题,掌握多种转换方法能灵活应对不同场景,本文将详细介……

    2025年8月24日
    3400
  • Linux恢复模式无法启动如何还原系统?

    当Linux恢复模式无法启动时,可通过Live CD/USB引导系统,挂载原系统分区,备份关键数据并执行修复操作(如重装引导、修复损坏包或还原系统快照)。

    2025年7月31日
    3600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信