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

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

P粉602998670
发布: 2025-08-08 08:32:01
原创
1264人浏览过

配置 ssh 密钥实现免密码登录的答案是:1. 在本地使用 ssh-keygen 生成 rsa 密钥对,私钥保存在本地,公钥用于上传;2. 通过 ssh-copy-id、手动复制或 scp 方法将公钥添加到服务器的 ~/.ssh/authorized_keys 文件中;3. 确保服务器上 ~/.ssh 目录权限为 700,authorized_keys 文件权限为 600;4. 测试 ssh 登录是否无需密码;5. 可选配置 ~/.ssh/config 设置别名简化登录。整个过程完成后即可实现安全高效的免密登录,且必须确保每一步权限设置正确才能成功。

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

配置 SSH 密钥实现免密码登录,是管理 Linux 服务器时非常实用的基础技能。它不仅提升了登录效率,还增强了安全性(相比密码登录更难被暴力破解)。下面是完整的设置流程,适用于大多数 Linux、macOS 系统,Windows 用户可使用 WSL 或 Git Bash 操作。


一、生成 SSH 密钥对

本地机器(你的电脑)上生成公钥和私钥。

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
登录后复制
  • -t rsa -b 4096
    登录后复制
    :使用 RSA 算法,密钥长度为 4096 位,更安全。
  • -C
    登录后复制
    后面是注释,通常是邮箱,用于标识密钥(可选但推荐)。

执行后会提示:

Enter file in which to save the key (/home/yourname/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
登录后复制
  • 直接回车使用默认路径。
  • passphrase 可设置也可留空(留空则完全免密码,方便但安全性略低)。

生成后会在

~/.ssh/
登录后复制
目录下创建两个文件:

  • id_rsa
    登录后复制
    :私钥(不要泄露
  • id_rsa.pub
    登录后复制
    :公钥(要上传到服务器)

二、将公钥上传到目标服务器

有三种常用方法,任选其一。

方法1:使用 ssh-copy-id(最简单)

ssh-copy-id username@server_ip
登录后复制
  • username
    登录后复制
    是你在服务器上的用户名
  • server_ip
    登录后复制
    是服务器 IP 地址

例如:

ssh-copy-id root@192.168.1.100
登录后复制

系统会提示输入密码,验证后自动将公钥追加到服务器的

~/.ssh/authorized_keys
登录后复制
文件中。

⚠️ 如果提示 ssh-copy-id: command not found,macOS 用户可通过 brew install ssh-copy-id 安装,Linux 用户用包管理器安装(如 sudo apt install ssh-copy-id)。

方法2:手动复制公钥内容

  1. 查看本地公钥内容:
cat ~/.ssh/id_rsa.pub
登录后复制
  1. 复制输出的整段内容(以

    ssh-rsa AAAAB3Nza...
    登录后复制
    开头,以邮箱结尾)。

  2. 登录服务器:

    易森网络企业版
    易森网络企业版

    如果您是新用户,请直接将本程序的所有文件上传在任一文件夹下,Rewrite 目录下放置了伪静态规则和筛选器,可将规则添加进IIS,即可正常使用,不用进行任何设置;(可修改图片等)默认的管理员用户名、密码和验证码都是:yeesen系统默认关闭,请上传后登陆后台点击“核心管理”里操作如下:进入“配置管理”中的&ld

    易森网络企业版 0
    查看详情 易森网络企业版
ssh username@server_ip
登录后复制
  1. 在服务器上创建
    .ssh
    登录后复制
    目录(如不存在):
mkdir -p ~/.ssh
登录后复制
  1. 将公钥内容写入
    authorized_keys
    登录后复制
echo "你复制的公钥内容" >> ~/.ssh/authorized_keys
登录后复制
  1. 设置正确权限(非常重要,否则 SSH 会拒绝密钥登录):
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
登录后复制

方法3:通过 scp 传输再处理

scp ~/.ssh/id_rsa.pub username@server_ip:/tmp/id_rsa.pub
登录后复制

然后登录服务器,执行:

mkdir -p ~/.ssh
cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
rm /tmp/id_rsa.pub
登录后复制

三、测试免密登录

退出服务器后,在本地尝试重新登录:

ssh username@server_ip
登录后复制

如果无需输入密码直接登录成功,说明配置成功。

如果仍需密码,请检查:

  • 服务器上
    ~/.ssh/authorized_keys
    登录后复制
    文件权限是否为 600
  • .ssh
    登录后复制
    目录权限是否为 700
  • SELinux 或防火墙是否阻止(较少见)
  • SSH 服务是否允许公钥认证(查看
    /etc/ssh/sshd_config
    登录后复制
    PubkeyAuthentication yes
    登录后复制

四、(可选)配置 SSH 别名简化登录

编辑本地的

~/.ssh/config
登录后复制
文件(不存在则创建):

Host myserver
    HostName 192.168.1.100
    User root
    IdentityFile ~/.ssh/id_rsa
登录后复制

之后只需输入:

ssh myserver
登录后复制

即可快速登录。


基本上就这些。整个过程不复杂,关键点是公钥正确写入服务器的 authorized_keys 并设置好权限。一旦配置完成,你就可以告别重复输入密码的烦恼了。

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

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

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

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

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