CentOS配置非root用户免密登录
程序员文章站
2022-07-14 19:56:01
...
1、准备工作
1、确认ssh服务已经安装并打开;
2、打开文件/etc/ssh/sshd_config,确保以下配置已经添加(如果被"#“注释了就把”#"删除):
AuthorizedKeysFile .ssh/authorized_keys
PubkeyAuthentication yes
3、三台机器的/etc/hostname文件中的内容分别是node0、node1、node2;
三台机器的/etc/hosts文件尾部都添加以下三行内容(请按照自己机器的ip地址来填写):
ip node0
ip node1
ip node2
4、使用useradd命令在三台机器上创建非root账号,usera、userb、userc
5、创建完账号后记得用命令passwd初始化账号的密码;
6、在node0机器上输入ssh [email protected],尝试ssh登录node1,此时由于未配置免密码登录,所以控制台要求输入node1的密码。
2、免密配置
1、生成秘钥(每台机器都要执行)
## 执行如下指令,以非root用户生成秘钥文件,usera、userb、userc
ssh-******
2、配置秘钥授权文件
1、## 以usera用户生成一个空白文件,authorized_keys
touch ~/.ssh/authorized_keys
2、## 将node0自己的公钥放入文件authorized_keys中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3、## 以userb用户,将node1的公钥传输到node0机器,文件名为node1.id_rsa.pub
scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/node1.id_rsa.pub
4、## 在node0机器上,将node1.id_rsa.pub的内容写入authorized_keys文件
cat ~/.ssh/node1.id_rsa.pub >> ~/.ssh/authorized_keys
5、## 以userc用户,将node2的公钥传输到node0机器,文件名为node2.id_rsa.pub
scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/node2.id_rsa.pub
6、## 在node0机器上,将node2.id_rsa.pub的内容写入authorized_keys文件
cat ~/.ssh/node2.id_rsa.pub >> ~/.ssh/authorized_keys
7、## 此时authorized_keys文件中已经有了node0、node1、node2的公钥;
3、同步秘钥授权文件
##以usera账号登录node0机器,执行以下命令将秘钥授权文件同步到node1、node2机器:
scp ~/.ssh/authorized_keys [email protected]:~/.ssh/
scp ~/.ssh/authorized_keys [email protected]:~/.ssh/
## 至此,秘钥授权文件已经同步到所有机器,如果前面的所有操作用的是root账号,此时已经可以免密码登录成功了,但是今天我们用的不是root账号,此时在node0输入命令ssh [email protected],却发现依然要求输入node1的账号的密码,这是因为文件和文件夹权限的问题导致的,接下来解决权限问题;
4、调整文件夹和文件的权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
## 至此,非root账号的SSH免密码登录配置已经完成
上一篇: 百度语音合成