想做一套不同linux用户执行不同操作的权限控制(后面想实现,普通用户通过authorized_keys控制,登录docker,并且限制普通用户操作物理机,只允许用户在docker虚拟机下有操作权限),回到正题,如何实现linux免密登录;
实现步骤如下:
一、在SSH客户机创建用户秘钥对
ssh-keygen -t rsa
之后全回车即可
将会在~/.ssh
目录中生成两个文件:id_rsa
(私钥) 与 id_rsa.pub
(公钥)
二、上传公钥文件
scp ~/.ssh/id_rsa.pub hwf@59.xxx.xxx.xxx:/home/hwf/.ssh/id_rsa.pub.59
三、在SSH服务器中导入公钥文本
在服务器中,目标用户(用来远程登录的用户)的公钥数据库位于~/.ssh/目录下,默认文件名是authorized_keys。
注意修改authorized_keys权限
# 如果authorized_keys不存在,则创建它 touch ~/.ssh/authorized_keys
# 将上传的公钥添加到authorized_keys后面 cat /home/hwf/.ssh/id_rsa.pub.59 >> /home/hwf/.ssh/authorized_keys
# 修改authorized_keys权限 chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
# 查看authorized_keys最后一行 tail -1 ~/.ssh/authorized_keys
四、设置sshd_config(非必须)
在/etc/ssh/sshd_config下设置:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
重启sshd服务:
service sshd restart
设置完成之后,新开一个终端:
ssh hwf@59.
xxx.xxx.xxx (第一次需要输入密码,登录成功后;再退出重新登录就可以免密登录了😆)
自己挖的坑:
配置免密登录时,不注意将AuthorizedKeysFile写成固定‘root’
/etc/ssh/sshd_config配置固定成
#AuthorizedKeysFile /root/.ssh/authorized_keys
导致普通用户无法免密登录
改回默认:
AuthorizedKeysFile %h/.ssh/authorized_keys
免密登录成功;