不同的操作系统其实过程基本一样,微软也提供了详细步骤:
https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagement
用管理员权限运行 PowerShell。
运行 ssh-keygen 来生成 RSA 密钥对。
1
| PS C:\Users\kenny> ssh-keygen
|
按提示需要输入保存文件的路径。我输入了 id_rsa_test
1
| Enter file in which to save the key (C:\Users\kenny/.ssh/id_rsa): C:\Users\kenny\.ssh\id_rsa_test
|
接着要输入密码对这个密钥加密保护
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\kenny/.ssh/id_rsa_test.
Your public key has been saved in C:\Users\kenny/.ssh/id_rsa_test.pub.
The key fingerprint is:
SHA256:OIzc1yE7joL2Bzy8!gS0j8eGK7bYaH1FmF3sDuMeSj8 kenny@LOCAL-HOSTNAME
The key's randomart image is:
+--[RSA 3072]--+
| . |
| o |
| . + + . |
| o B * = . |
| o= B S . |
| .=B O o |
| + =+% o |
| *oo.O.E |
|+.o+=o. . |
+----[SHA256]-----+
|
把这个密钥添加到 ssh-agent 以便以后不需要在连接 SSH 的时候输入密码。
在使用 ssh-add 加入ssh-agent 之前,Windows 用户还有一些额外的步骤要做:
1
2
3
4
5
6
7
8
9
10
11
12
| # ssh-agent 服务默认是禁用的,需要配置成自动开启
# 确保在管理员权限下执行这个代码
Get-Service ssh-agent | Set-Service -StartupType Automatic
# 启用服务
Start-Service ssh-agent
# 查看服务状态
Get-Service ssh-agent
# 把这个密钥添加到 ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_rsa_test
|
- 登录到群晖管理页面
- 打开 File Station > home.
- 新建名为 .ssh 的文件夹
- 上传公钥 id_rsa.pub 到 .ssh 文件夹
更多说明可查看:
https://kb.synology.com/en-uk/DSM/tutorial/How_to_log_in_to_DSM_with_key_pairs_as_admin_or_root_permission_via_SSH_on_computers
- 打开 系统 → 管理权 → SSH 密钥
- 复制公钥文件的内容。 公钥内容以
ssh-rsa ...
开头,并以 ... [email protected]
结尾 - 把公钥文件的内容粘贴到下方的输入框
- 为了测试是否有效,可在命令行执行
ssh root@路由器地址
,成功的话应该无需密码直接连上了
更多说明可查看:
https://openwrt.org/docs/guide-user/security/dropbear.public-key.auth#from_the_luci_web_interface
SSH 的默认端口是 22。如果修改过这个端口号,则需要在连接的时候指定:
- ssh ssh://user@address:端口
- ssh -p 端口 user@address
在删除之前要启动 ssh-agent
:
删除全部私钥:
删除指定的私钥:
1
| ssh-add -d ~/.ssh/sshkeynamewithout.pub
|
列出目前的私钥:
更多说明可查看:
https://stackoverflow.com/a/73572251