1.环境
本地系统: Windows 10
远程机系统: Ubuntu 22.04 TLS
2.生成密钥
在本地系统上,用Win+R cmd 打开终端,并在C:\Users\username路径下输入ssh-keygen,然后一直回车,最终路径下会生成id_rsa和id_rsa.pub两个文件
3.生成authorized_keys
在远程机系统上,新建文件夹 ~/.ssh, 并在该文件夹内新建文件authorized_keys
将本地系统上id_rsa.pub的所有内容复制到authorized_keys中
注意sshd对路径下文件权限有要求,若权限不对(包括777),可能无法生效:
- 远程机上.ssh目录的权限必须是700
- 远程机上.authorized_keys文件权限必须是600或者644
- 远程机上.ssh上级目录权限必须是700(也以可为755,就是不能是77x)
4.检查PubkeyAuthentication是否开启
vi /etc/ssh/sshd_config
找到PubkeyAuthentication改成yes