发布时间:
目录
一、CentOS 生成 SSH 密钥 #
1. 生成 RSA 密钥对(最常用) #
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -C "your_email@example.com"
参数说明:
-t rsa
:指定密钥类型为 RSA。-b 4096
:指定密钥长度为 4096 位(安全性更高)。-f ~/.ssh/id_rsa
:指定保存路径(可自定义,默认 )。-C "your_email@example.com"
:添加注释(可选,便于识别密钥)。
2. 自定义密钥保存路径(可选) #
执行命令后,系统会提示你选择保存路径,默认是 ~/.ssh/id_rsa
:
Enter file in which to save the key (/root/.ssh/id_rsa):
3. 设置密码保护(可选) #
接下来,系统会提示你设置私钥的密码(passphrase):
Enter passphrase (empty for no passphrase):
设置私钥密码就不能免密登录了
- 作用:即使私钥文件被泄露,没有密码也无法使用。
- 使用提示:输入密码时终端不会显示字符,输入完成后直接按回车键。
生成后会出现两个文件:
~/.ssh/id_rsa
(私钥)~/.ssh/id_rsa.pub
(公钥)
二、将公钥添加到目标服务器(或本机)上 #
将公钥拷贝到目标机器的 ~/.ssh/authorized_keys
:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
- 作用:信任该 SSH 公钥,从而允许用对应私钥进行免密码登录
三、将私钥拷贝到 Windows 本地 #
假设你使用的是 Windows 的 scp
工具或者 WinSCP
/ PowerShell
/ Git Bash
,将私钥下载到 Windows(例如放在 C:\Users\Tom\.ssh\id_rsa
)。
从 CentOS 拷贝:
# 在 Windows 上执行,假设你用的是 Git Bash 或 PowerShell 且 CentOS IP 是 192.168.1.10
scp user@192.168.1.10:~/.ssh/id_rsa C:\Users\Tom\.ssh\id_rsa
四、Windows 通过 SCP 使用私钥上传文件到 CentOS #
使用 Git Bash / PowerShell:
scp -i C:\Users\Tom\.ssh\id_rsa C:\path\to\local\file.txt user@192.168.1.10:/home/user/
或者使用 pscp.exe
(来自 PuTTY 工具包):
pscp -i C:\path\to\private_key.ppk C:\path\to\file.txt user@192.168.1.10:/home/user/
注意:PuTTY 的私钥是 .ppk
格式,需用 PuTTYgen 将 id_rsa
转换为 .ppk
。
五、注意事项 #
- 私钥文件权限要严格,在 Windows 上设置只允许你自己访问。
- 如果提示
Permissions are too open
,说明私钥文件权限太宽,需限制(可尝试用 Git Bash 改权限:chmod 600 id_rsa
)。 - 如果 SCP 报错可以尝试
-v
参数查看详细信息。