首先,你要新建一个用户,权限可以最小,用来ssh登陆系统。
useradd
1、ssh-keygen -t rsa
使用新建的用户执行这条命令。
会让你输入密码,根据个人需要,我是没填密码,因为使用方便。
然后会在你当前用户的home目录下生成.ssh,里面有id_rsa,id_rsa.pub,id_rsa.pub就是公钥:
2、cat id_rsa.pub >> authorized_keys
因为ssh默认是会去读取authorized_keys里面的数据。
id_rsa是私钥,拖回本地来。
3、修改/etc/ssh/sshd_config
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
systemctl restart sshd
4、vi /etc/sudoers
在%wheel ALL=(ALL) NOPASSWD: ALL这一行上添加:
youruser ALL=(ALL) NOPASSWD:ALL
至此,就可以用新建的用户加id_rsa来登陆系统了。需要root权限直接sudo -s就可以。
PS:在实施过程中因为偷懒,直接使用ssh-copy-id来把key分发到其它服务器上,其中一台始终无法登陆,提示:
Authentication refused: bad ownership or modes
后来发现是.ssh目录权限问题,直接给700,问题解决。