1:电脑本地生成SSH密钥对

ssh-keygen -t ed25519

一路回车即可

本机是Win系统:

默认生成在C:\Users\用户名\.ssh\目录

本机是Linux系统:

默认生成在~/.ssh/目录

2:密钥对说明

id_ed25519是私钥,需要保存在本地,不能泄漏。

id_ed25519.pub是公钥,需要将里面的内容复制到要连接的目标主机~/.ssh/authorized_keys中,可以公开。

这样就可以免密连接目标主机了,其他的都可以不用管,不过为了安全,建议关闭密码认证。

私钥相当于钥匙,公钥相当于锁,将锁放在目标主机上,本机就可以使用钥匙开锁。

当然也可以将锁放在多个目标主机上,实现一把钥匙开多个锁。也就是一个私钥免密连接多个主机。

3:~目录说明

~代表当前用户的家目录

Linux系统:

普通用户:~等于/home/用户名/目录

root用户:~等于/root/目录

Windows系统:

当前用户:~等于C:\Users\用户名\目录

4:使用命令将公钥复制到目标主机

ssh-copy-id -i ~/.ssh/id_ed25519.pub [email protected]

如果你的目标主机ssh端口不是默认的22,则需要指定端口参数,例如2233端口:

ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 2233 [email protected]

这条命令会自动把id_ed25519.pub的内容追加到目标主机的~/.ssh/authorized_keys

多个主机可以使用脚本for循环批量执行

5:注意事项

目标主机上需要正确的权限设置,一般默认的权限就是正确的。无需改动。

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

如果你是在目标主机上生成SSH密钥对的话,则把私钥下载到本地即可。

❤️转载请注明出处❤️