ssh免密登陆
要配置 SSH 免密登录(即使用 SSH 密钥认证),可以按照以下步骤操作:
假设环境
- 本地主机(Client) :你当前使用的电脑
- 远程服务器(Server) :你要免密登录的目标机器
- 用户名:
user
- 服务器 IP:
192.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 | Generating public/private rsa key pair. |
直接回车,默认保存在 ~/.ssh/id_rsa
(私钥) 和 ~/.ssh/id_rsa.pub
(公钥)。
然后会让你输入 密码短语(passphrase) :
1 | Enter passphrase (empty for no passphrase): |
如果不想输入密码短语(免密),直接回车两次。
步骤 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 | cat ~/.ssh/id_rsa.pub |
输出类似:
1 | ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA7... your_email@example.com |
- 登录远程服务器
1 | ssh user@192.168.1.100 |
然后输入密码登录。
2. 添加公钥到远程服务器的 ~/.ssh/authorized_keys
在远程服务器终端执行:
1 | mkdir -p ~/.ssh |
步骤 3:测试免密登录
在本地运行:
1 | ssh user@192.168.1.100 |
如果不再要求输入密码,说明配置成功 🎉。