linux 实现免密(秘钥)登录

想做一套不同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

免密登录成功;

发表回复

京ICP备15027918号-1