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

配置 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 s*e 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. 登录服务器:

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

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

    小麦企业网站展示系统1.1 2 查看详情 小麦企业网站展示系统1.1
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密钥 免密码登录设置流程的详细内容,更多请关注其它相关文章!

本文转自网络,如有侵权请联系客服删除。