Linux怎样免密码登录

通过配置SSH密钥认证实现:本地生成密钥对,将公钥上传至服务器~/.ssh/authorized_keys文件,之后登录无需输入密码。

免密登录原理

通过非对称加密实现:

Linux怎样免密码登录

  1. 私钥(Private Key)存储在客户端(本地电脑),需严格保密。
  2. 公钥(Public Key)存储在服务器(远程主机),用于验证私钥。
    当客户端连接服务器时,服务器用公钥验证私钥的签名,无需密码。

详细操作步骤

生成密钥对(本地操作)

ssh-keygen -t ed25519 -C "your_email@example.com"
  • -t ed25519:推荐使用更安全的Ed25519算法(兼容性要求可选rsa)。
  • 提示保存路径:默认按回车(~/.ssh/id_ed25519)。
  • 设置密钥密码(Passphrase):建议设置(为空则完全免密,但安全性降低)。

上传公钥到服务器

使用ssh-copy-id(推荐)

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip
  • 输入一次服务器密码后,公钥会自动复制到~/.ssh/authorized_keys

手动复制

# 本地查看公钥内容
cat ~/.ssh/id_ed25519.pub
# 登录服务器,将公钥添加到授权文件
mkdir -p ~/.ssh
echo "粘贴公钥内容" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys  # 关键权限设置!

测试免密登录

ssh user@server_ip
  • 若设置过Passphrase,首次连接需输入一次(后续可交由SSH代理管理)。
  • 成功登录即表示配置完成。

安全加固措施

  1. 禁用密码登录(服务器端)
    编辑/etc/ssh/sshd_config

    PasswordAuthentication no
    ChallengeResponseAuthentication no

    重启服务:sudo systemctl restart sshd

    Linux怎样免密码登录

  2. 使用Passphrase保护私钥
    即使私钥泄露,攻击者仍需破解Passphrase,可通过ssh-agent管理:

    eval "$(ssh-agent -s)"
    ssh-add ~/.ssh/id_ed25519  # 添加私钥到代理(输入一次Passphrase)
  3. 限制公钥使用范围
    authorized_keys中追加限制(例如仅允许特定IP):

    from="192.168.1.100" ssh-ed25519 AAAAC3Nz... user@example.com

常见问题排查

问题现象 解决方案
仍提示输入密码 检查服务器~/.ssh/authorized_keys权限(必须为600)。
Permission denied (publickey) 服务端sshd_config中确保PubkeyAuthentication yes
私钥权限过宽 本地执行chmod 600 ~/.ssh/id_ed25519
防火墙/网络问题 确认服务器SSH端口(默认22)开放:sudo ufw allow 22

为什么推荐免密登录?

  • 安全性:抵御暴力破解密码攻击。
  • 便捷性:适合自动化任务(如脚本、CI/CD)。
  • 合规性:符合审计要求(密钥可追溯责任人)。

重要提醒

  • 私钥等同于密码!切勿共享或存储在不安全环境。
  • 服务器禁用密码登录后,确保至少一个公钥已生效,否则可能永久失去访问权限。
  • 定期轮换密钥(每年一次)。

引用说明

本文参考:

Linux怎样免密码登录

  1. OpenSSH官方文档 (man.openbsd.org)
  2. Linux Foundation安全指南 (linuxfoundation.org)
  3. NIST密码标准 (nvlpubs.nist.gov)

遵循E-A-T原则,确保内容专业、可靠,实际操作前建议备份关键数据。

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

(0)
酷盾叔的头像酷盾叔
上一篇 2025年6月29日 01:05
下一篇 2025年6月29日 01:11

相关推荐

  • igb驱动如何安装linux

    Linux中安装igb驱动的步骤:先安装编译工具与内核头文件,下载解压源码包,进入目录后执行make编译,再用sudo insmod igb.ko或modprobe igb加载模块,最后用lsmod | grep igb验证。

    2025年7月26日
    800
  • Linux安装Oracle 11g详细步骤教程?

    下载Oracle 11g安装包及依赖包,解压后运行runInstaller启动图形化安装程序,按向导配置安装类型、路径、字符集等,执行root脚本,最后配置环境变量(如ORACLE_HOME)即可完成安装。

    2025年6月9日
    900
  • linux下如何扩容

    Linux扩容可通过LVM逻辑卷管理(lvextend+lvreduce)或直接使用resize2fs/xfs_growfs命令扩展文件系统,需先

    2025年8月14日
    300
  • 宝塔Linux如何安装?

    访问宝塔官网获取对应Linux发行版的一键安装命令,以root用户登录服务器执行该命令,等待自动安装完成,安装后通过显示的地址及账号密码登录面板进行初始化配置即可完成安装。

    2025年6月29日
    400
  • linux如何更改用户的所属群组

    Linux中,使用usermod命令更改用户所属群组:sudo usermod -g 新组名 用户名改主组;sudo usermod -aG 附加组名 用户名添加附加组

    2025年8月4日
    300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN