Linux环境非root用户配置SSH免密登录,并解决登录仍提示输入密码
ssh免密登录的简单理解
以A和B进行举例:A免密登录B
(即在A服务器输入命令:ssh 非root用户名@B的IP地址)可以直接免密码直接登录
A生成私钥和公钥,然后把A的公钥发给B,B存储A的公钥
(这里就相当于A生成了钥匙和锁,然后B在在自家门上又按上了一把A的锁,下次A来访问B,A直接开B按上的那把锁就能直接进入了,当然这个过程是自动的不可见的)
A服务器生成公钥和私钥
在A服务器输入命令ssh-keygen -t rsa
,然后一路回车即可,然后在(LinuxA)/root/.ssh/下或者 (WindowsA)C:\Users\用户名.ssh下生成会生成两个文件id_rsa 和 id_rsa.pub ;
去B服务器上加入A的公钥
这里注意你的B服务器允许root用户登录,那么你需要在/root/.ssh下新建文件authorized_keys,然后vim authorized_keys
,将A服务器中id_rsa.pub的内容加入到B服务器上的authorized_keys中。
(如果你是非root用户登录,那么你需要在/home/非root用户/.ssh/下新建文件authorized_keys)
给予对应权限
- root用户
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
- 非root用户
chown username: /home/username/.ssh
chown username: /home/username/.ssh/*
chmod 700 /home/username/.ssh
chmod 600 /home/username/.ssh/*
解决登录仍然输入密码
-
vim /etc/ssh/sshd_config
打开相应的配置 -
systemctl restart sshd
(注意,在禁止root登录的情况下,非root用户登录仍然输入密码,多半是因为没给非root用户授予权限,参考上)