ssh免密登陆

要配置 SSH 免密登录(即使用 SSH 密钥认证),可以按照以下步骤操作:


假设环境

  • 本地主机(Client) :你当前使用的电脑
  • 远程服务器(Server) :你要免密登录的目标机器
  • 用户名user
  • 服务器 IP192.168.1.100

步骤 1:在本地生成 SSH 密钥

在本地终端(Linux / Mac / WSL / Git Bash / PowerShell)执行:

1
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

参数说明:

  • -t rsa:生成 RSA 类型密钥(推荐)
  • -b 4096:密钥长度 4096 位(更安全)
  • -C "your_email@example.com":添加注释,方便识别

生成后会有如下提示:

1
2
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):

直接回车,默认保存在 ~/.ssh/id_rsa(私钥) 和 ~/.ssh/id_rsa.pub(公钥)。

然后会让你输入 密码短语(passphrase) :

1
2
Enter passphrase (empty for no passphrase): 
Enter same passphrase again:

如果不想输入密码短语(免密),直接回车两次


步骤 2:复制公钥到远程服务器

你可以用以下方法把 id_rsa.pub 复制到远程服务器:

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

如果本地有 ssh-copy-id,执行:

1
ssh-copy-id user@192.168.1.100

然后输入 远程服务器的密码,成功后会自动配置。

如果ssh-copy-id不可用(例如,windows下不支持这个命令),可以新建git bash然后执行上述指令。如果也没有git bash,那么:


方法 2:手动复制公钥

如果 ssh-copy-id 不可用,可以手动操作:

  1. 查看公钥
1
cat ~/.ssh/id_rsa.pub

输出类似:

1
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA7... your_email@example.com
  1. 登录远程服务器
1
ssh user@192.168.1.100

然后输入密码登录。
2. 添加公钥到远程服务器的 ~/.ssh/authorized_keys 在远程服务器终端执行:

1
2
3
4
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "你的公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

步骤 3:测试免密登录

在本地运行:

1
ssh user@192.168.1.100

如果不再要求输入密码,说明配置成功 🎉。