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

相关推荐

  • Linux终端命令行怎么快速开启?

    在Linux系统中,打开终端命令行最常用方法: ,1. **快捷键**:同时按下 Ctrl + Alt + T(适用于多数图形界面)。 ,2. **菜单操作**:在应用程序菜单中搜索“终端”或“命令行”并点击。 ,3. **虚拟控制台**:通过 Ctrl + Alt + F1~F6 切换至文本界面(需 Ctrl + Alt + F7 切回图形界面)。

    2025年6月25日
    100
  • 怎样卸载Linux软件

    在Linux中卸载程序通常使用包管理器命令:Debian/Ubuntu系统用sudo apt remove 程序名,RedHat/CentOS用sudo yum remove 程序名或sudo dnf remove 程序名,务必准确输入软件包名称。

    2025年6月22日
    000
  • 如何在Linux7系统中创建GPT分区?

    在Linux 7中使用gdisk或parted工具创建GPT分区表,通过命令行选择目标磁盘,输入gdisk /dev/sdX进入交互模式,输入o初始化GPT,确认后执行w保存更改,注意操作将清除磁盘数据,需提前备份。

    2025年5月29日
    300
  • 如何在Linux系统中正确安装不同版本的操作系统?

    在Linux系统中安装新版本通常需准备启动U盘或光盘,从镜像文件制作安装介质,重启进入BIOS选择启动项,启动安装程序后按指引分区(建议备份数据),选择安装位置及配置系统参数,完成安装后重启并移除安装介质即可。

    2025年5月28日
    100
  • Linux怎样快速排序文件

    在Linux中排序文本通常使用sort命令,它支持按字典序、数值大小、月份等规则排序,可指定分隔符和排序列,还能合并已排序文件,基本用法:sort [选项] [文件]。

    2025年6月22日
    000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN