首页 > 运维 > linux运维 > 正文

如何配置ssh密钥登录 免密码认证设置流程

P粉602998670
发布: 2025-08-29 11:13:01
原创
638人浏览过

免密码 ssh 密钥登录的配置方法如下:1. 生成密钥对,使用命令 ssh-keygen -t rsa -b 4096 创建私钥和公钥文件;2. 上传公钥到服务器,可通过 ssh-copy-id 命令或手动将公钥内容写入远程服务器的 ~/.ssh/authorized_keys 文件;3. 可选修改 ssh 服务器配置 /etc/ssh/sshd_config,设置 passwordauthentication no 和 pubkeyauthentication yes,并重启 ssh 服务;4. 测试登录,执行 ssh user@remote_host 验证是否免密登录;5. 若仍需密码,需排查权限问题(~/.ssh 权限为 700,authorized_keys 权限为 600)、公钥内容是否正确、sshd_config 配置是否生效、selinux/apparmor 是否阻止、防火墙是否放行 22 端口及家目录权限是否合规;6. 管理多个密钥可通过 ~/.ssh/config 文件配置 host 别名、hostname、user 和 identityfile 实现自动匹配;7. 安全性保障措施包括设置强 passphrase、保护私钥文件权限为 600、禁用密码登录、使用 ssh 证书、定期更换密钥、采用硬件安全模块 hsm 存储私钥以及限制 ssh 访问来源 ip,从而全面提升 ssh 登录的安全性与便利性。

如何配置ssh密钥登录 免密码认证设置流程

免密码 SSH 密钥登录,简单来说,就是让你不用每次都输入密码就能连接到远程服务器。这不仅方便,而且在一定程度上也更安全。

配置 SSH 密钥登录,其实并不复杂,下面一步步来:

生成密钥对:

首先,在你的本地机器上打开终端,运行以下命令:

ssh-keygen -t rsa -b 4096
登录后复制

这里

-t rsa
登录后复制
指定密钥类型为 RSA,
-b 4096
登录后复制
指定密钥长度为 4096 位。你可以根据自己的需求选择不同的密钥类型和长度。

接下来,会提示你输入保存密钥的文件路径,默认是

~/.ssh/id_rsa
登录后复制
。直接回车使用默认路径即可。

然后,会提示你输入 passphrase(密码短语)。这个 passphrase 是用来加密你的私钥的,如果设置了,每次使用私钥时都需要输入这个 passphrase。为了方便,你可以直接回车跳过,不设置 passphrase。

执行完毕后,会在

~/.ssh
登录后复制
目录下生成两个文件:
id_rsa
登录后复制
(私钥)和
id_rsa.pub
登录后复制
(公钥)。

上传公钥到服务器:

接下来,需要将你的公钥上传到远程服务器。有很多方法可以做到这一点,最简单的方法是使用

ssh-copy-id
登录后复制
命令:

ssh-copy-id user@remote_host
登录后复制

其中

user
登录后复制
是你在远程服务器上的用户名,
remote_host
登录后复制
是远程服务器的 IP 地址或域名。

如果你的本地机器上没有

ssh-copy-id
登录后复制
命令,或者你想手动上传公钥,可以这样做:

首先,将公钥的内容复制到剪贴板:

cat ~/.ssh/id_rsa.pub
登录后复制

然后,通过 SSH 连接到远程服务器:

ssh user@remote_host
登录后复制

登录后,在

~/.ssh
登录后复制
目录下创建一个
authorized_keys
登录后复制
文件(如果该文件不存在):

mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
登录后复制

然后,将你复制的公钥内容粘贴到

authorized_keys
登录后复制
文件中。注意,每个公钥应该占据一行。

小麦企业网站展示系统1.1
小麦企业网站展示系统1.1

小麦企业网站展示系统介绍:一、安装使用将xiaomai.sql导入数据库二、后台登录后台帐号,密码默认都是admin,config.php 配置文件可根据自行需要修改,IP地址,数据库用户名,密码,及表名后台目录默认admin,支持自行任意修改目录名三、注意事项1 本源码完全免费,采用伪静态,减少不必要的源码重复,速度更快,支持二次开发。2、注明本程序编码为UTF8,如发生乱码,请注意修改编码3、

小麦企业网站展示系统1.1 2
查看详情 小麦企业网站展示系统1.1

修改 SSH 服务器配置(可选):

为了进一步增强安全性,你可以修改 SSH 服务器的配置文件

/etc/ssh/sshd_config
登录后复制

找到以下几行,并修改为:

PasswordAuthentication no
PubkeyAuthentication yes
登录后复制

PasswordAuthentication no
登录后复制
禁止使用密码登录,
PubkeyAuthentication yes
登录后复制
允许使用公钥登录。

修改完成后,重启 SSH 服务:

sudo systemctl restart sshd
登录后复制

测试免密码登录:

现在,你可以尝试使用 SSH 连接到远程服务器,看看是否需要输入密码了:

ssh user@remote_host
登录后复制

如果一切顺利,你应该可以直接登录到远程服务器,而不需要输入密码。

如果配置后仍然需要密码,如何排查?

配置 SSH 密钥登录后,如果仍然需要输入密码,可能是以下几个原因导致的:

  • 权限问题: 确保
    ~/.ssh
    登录后复制
    目录的权限是 700,
    ~/.ssh/authorized_keys
    登录后复制
    文件的权限是 600。可以使用
    chmod
    登录后复制
    命令修改权限。
  • 公钥内容错误: 检查
    authorized_keys
    登录后复制
    文件中的公钥内容是否正确,是否有多余的空格或换行符。
  • sshd_config
    登录后复制
    配置错误:
    检查
    /etc/ssh/sshd_config
    登录后复制
    文件中的配置是否正确,特别是
    PasswordAuthentication
    登录后复制
    PubkeyAuthentication
    登录后复制
    这两行。
  • SELinux 或 AppArmor 阻止: 如果你的系统启用了 SELinux 或 AppArmor,可能会阻止 SSH 使用密钥登录。可以尝试暂时禁用 SELinux 或 AppArmor,看看是否能够解决问题。或者,配置 SELinux 或 AppArmor 允许 SSH 使用密钥登录。
  • 防火墙阻止: 确保防火墙允许 SSH 连接。默认情况下,SSH 使用 22 端口。
  • 用户家目录权限问题: 用户的家目录权限不正确也会导致密钥认证失败,确保家目录的权限是 755 或 700。

如何管理多个 SSH 密钥?

如果你需要连接到多个远程服务器,并且每个服务器都使用不同的 SSH 密钥,可以使用 SSH 的

config
登录后复制
文件来管理这些密钥。

在你的本地机器上,创建一个

~/.ssh/config
登录后复制
文件(如果该文件不存在)。然后,在
config
登录后复制
文件中添加以下内容:

Host server1
  HostName 192.168.1.100
  User user1
  IdentityFile ~/.ssh/id_rsa_server1

Host server2
  HostName example.com
  User user2
  IdentityFile ~/.ssh/id_rsa_server2
登录后复制

其中,

Host
登录后复制
是一个别名,你可以随意命名。
HostName
登录后复制
是远程服务器的 IP 地址或域名。
user
登录后复制
是你在远程服务器上的用户名。
IdentityFile
登录后复制
是私钥文件的路径。

配置完成后,你可以使用别名来连接到远程服务器:

ssh server1
ssh server2
登录后复制

这样,SSH 就会自动使用对应的私钥进行认证。

SSH 密钥的安全性如何保障?

SSH 密钥的安全性非常重要,一旦私钥泄露,攻击者就可以轻松地登录到你的远程服务器。为了保障 SSH 密钥的安全性,可以采取以下措施:

  • 使用强密码短语: 在生成密钥对时,设置一个强密码短语,用来加密你的私钥。这样,即使私钥泄露,攻击者也需要知道密码短语才能使用私钥。
  • 保护私钥文件: 确保私钥文件的权限是 600,只有你自己才能读取和写入。
  • 禁用密码登录: 在 SSH 服务器上禁用密码登录,只允许使用公钥登录。这样,即使攻击者知道了你的用户名和密码,也无法登录到服务器。
  • 使用 SSH 证书: SSH 证书是一种更安全的认证方式,可以用来替代传统的 SSH 密钥。
  • 定期更换密钥: 定期更换 SSH 密钥,可以降低密钥泄露带来的风险。
  • 使用硬件安全模块 (HSM): 将私钥存储在硬件安全模块中,可以提供更高的安全性。HSM 是一种专门用于存储和管理密钥的硬件设备,可以防止私钥被盗取或篡改。
  • 限制 SSH 访问来源: 使用防火墙或 TCP Wrappers 等工具,限制 SSH 访问的来源 IP 地址,可以减少攻击面。

这些措施可以有效地提高 SSH 密钥的安全性,保护你的远程服务器免受攻击。选择适合你的安全需求和技术水平的措施,并定期审查和更新你的安全策略。

以上就是如何配置ssh密钥登录 免密码认证设置流程的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号