Linux如何配置SSH密钥认证_Linux免密登录设置_技术学院_宜昌市隼壹珍商贸有限公司

您好,欢迎访问宜昌市隼壹珍商贸有限公司

400 890 5375
当前位置: 主页 > 新闻动态 > 技术学院

Linux如何配置SSH密钥认证_Linux免密登录设置

发布时间:2025-11-30  |  点击率:
配置SSH密钥认证可实现免密码安全登录。1. 用ssh-keygen生成密钥对,默认保存在~/.ssh/id_rsa和~/.ssh/id_rsa.pub;2. 用ssh-copy-id或手动方式将公钥传至远程服务器的~/.ssh/authorized_keys;3. 确保sshd_config中PubkeyAuthentication为yes,可选禁用PasswordAuthentication;4. 重启sshd服务后测试ssh登录,成功则无需密码;5. 可通过~/.ssh/config设置别名简化连接。完成后提升安全与效率。

在Linux系统中,配置SSH密钥认证可以实现免密码登录远程服务器,提升安全性和操作效率。相比密码登录,密钥认证更难被暴力破解,是生产环境中的推荐做法。

生成SSH密钥对

在本地机器上生成公钥和私钥。通常使用ssh-keygen命令:

执行命令:

ssh-keygen -t rsa -b 2048

按提示操作,可以选择保存路径(默认为~/.ssh/id_rsa)并设置私钥密码(可选)。完成后会生成两个文件:

  • ~/.ssh/id_rsa:私钥,必须妥善保管,不可泄露
  • ~/.ssh/id_rsa.pub:公钥,需复制到目标服务器

将公钥上传到远程服务器

把本地生成的公钥内容添加到远程主机的~/.ssh/authorized_keys文件中。有以下几种方式:

方法一:使用ssh-copy-id(推荐)

ssh-copy-id username@server_ip

系统会提示输入用户密码,验证通过后自动将公钥追加到远程用户的authorized_keys中。

方法二:手动复制粘贴

cat ~/.ssh/id_rsa.pub | ssh username@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

该命令将本地公钥通过SSH发送并写入远程服务器对应文件。

配置SSH服务端(如需调整)

确保远程服务器的SSH服务允许密钥认证。编辑配置文件:

sudo nano /etc/ssh/sshd_config

检查以下参数是否启用:

  • PubkeyAuthentication yes — 允许公钥认证
  • AuthorizedKeysFile .ssh/authorized_keys — 指定公钥存储路径
  • PasswordAuthentication no — 可选:禁用密码登录以增强安全

修改后重启SSH服务:

sudo systemctl restart sshd

测试免密登录

从本地尝试连接远程服务器:

ssh username@server_ip

如果配置正确,将直接登录,无需输入密码。若设置了私钥密码,则需输入一次私钥口令。

可添加别名简化登录,编辑本地~/.ssh/config

Host myserver
HostName server_ip
User username
IdentityFile ~/.ssh/id_rsa

之后只需输入ssh myserver即可连接。

基本上就这些。配置好后,日常运维、脚本自动化等场景都能无感连接,既方便又安全。

全国统一服务电话

400 890 5375

电子邮箱:879577@qq.com

公司地址:宜昌市西陵区黄河路5号三峡明珠10栋1051室

咨询微信

TEL:13680874598