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

无密码登录原理

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

  • 私钥(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

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

  • 用户家目录权限为 755(chmod 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操作系统中,如何打开并启动VirtualBox的虚拟机管理程序?

    在Linux系统中使用VirtualBox可以方便地运行虚拟机,无论是进行软件开发、系统测试还是学习其他操作系统,VirtualBox都提供了强大的支持,要在Linux下成功打开并使用VirtualBox,需要经过安装、配置等步骤,本文将详细介绍整个过程,包括安装前的准备、不同Linux发行版的安装方法、启动V……

    2025年8月29日
    24000
  • Ubuntu安装常见问题如何解决?

    在Linux服务器上搭建PHP环境是部署动态网站的基础步骤,以下以Ubuntu 22.04和CentOS 7为例,提供两种主流方案的详细流程(LAMP:Linux + Apache + MySQL + PHP),所有操作需通过SSH连接服务器执行,准备工作更新系统# Ubuntusudo apt update……

    2025年6月17日
    18700
  • Linux服务器权限设置正确吗?

    准备工作选择Linux发行版推荐选择:Ubuntu Server(易用性强)或CentOS Stream(企业级稳定性)考虑因素:硬件兼容性、社区支持、软件生态硬件要求- 最低配置:1核CPU/1GB内存/10GB存储(基础服务)- 生产环境建议:4核CPU/8GB内存/SSD存储- 网络要求:固定公网IP、5……

    2025年8月8日
    18800
  • Linux中如何查看后台运行的所有进程及其详细信息?

    在Linux系统中,后台进程是指在系统中运行但不直接与用户交互的进程,它们通常在后台持续提供服务或执行特定任务,如系统服务、守护进程、用户提交的后台任务等,掌握查看后台进程的方法是Linux系统管理和日常运维的基础技能,本文将详细介绍多种查看后台进程的命令及其使用场景,帮助用户全面掌握进程监控技巧,基础命令:p……

    2025年8月28日
    20800
  • 如何修改Linux服务器密码?详细操作步骤是怎样的?

    修改Linux服务器密码是系统管理和安全维护的基础操作,根据登录方式(本地/远程)、用户权限(普通用户/root)以及是否忘记密码等不同场景,操作方法有所差异,以下是详细的操作步骤、注意事项及常见问题处理,帮助管理员安全高效地完成密码修改,本地登录修改当前用户密码当已通过控制台或本地终端登录Linux服务器时……

    2025年10月1日
    1.8K00

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信