431 字
2 分钟
linux服务器免密ssh连接教程
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 root@192.168.2.1
如果你的目标主机ssh端口不是默认的22,则需要指定端口参数,例如2233端口:
ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 2233 root@192.168.2.1
这条命令会自动把id_ed25519.pub
的内容追加到目标主机的~/.ssh/authorized_keys
中
多个主机可以使用脚本for循环批量执行
5:注意事项
目标主机上需要正确的权限设置,一般默认的权限就是正确的。无需改动。
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
如果你是在目标主机上生成SSH密钥对的话,则把私钥下载到本地即可。