前言:
Linux环境下,经常需要通过SSH从一台服务器登录到另一台服务器,并且登录身份不是root账号,每次都要输入密码挺麻烦的,所以今天就来实战如何配置非root账号的免密码登录
环境准备:(2台centos7.5的主机)
IP地址 | 主机名 | 用户 |
10.10.1.10 | mth | u01 |
10.10.1.19 | mth1 | u02 |
1.确认ssh服务已经安装并打开;
2.打开文件/etc/ssh/sshd_config,确保以下配置已经添加
1. AuthorizedKeysFile .ssh/authorized_keys
2. PubkeyAuthentication yes
3.修改两台主机的主机名分别为mth、mth01;
hostnamectl set-hostname mth
hostnamectl set-hostname mth01
4.分别在两台主机的/etc/hosts文件尾部添加hosts解析:
5.创建用户u01和u02:
useradd u01 //创建新用户
passwd g u01 //设置新用户登录密码
生成秘钥:
1.以u01账户登录mth(10.10.1.10);
2.输入ssh-keygen -t rsa,生成密钥文件:
无需指定口令密码,直接回车,命令执行完毕后会在 u01 用户的家目录中(/home/ u01/.ssh)生成两个文件:
id_rsa: 私钥
id_rsa.pub:公钥
配置秘钥授权文件:
1.以u01用户登录mth机器(10.10.1.10);
2.生成一个空白文件:
touch ~/.ssh/authorized_keys
3.将u01自己的公钥放入文件authorized_keys中:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
4.以u02账户登录mth01(10.10.1.19)机器,执行如下命令,将mth01的公钥传输到mth机器上,并命名为mth01.id_rsa.pub:
scp ~/.ssh/id_rsa.pub u01@mth:~/.ssh/mth01.id_rsa.pub
会要求输入mth的u01账号的密码,输入后传输完成,在mth的/home/u01/.ssh目录下,多了个名为mth01.id_rsa.pub的文件;
5.在mth机器执行以下命令,即可将mth01.id_rsa.pub的内容写入authorized_keys文件:
cat ~/.ssh/mth01.id_rsa.pub >> ~/.ssh/authorized_keys
此时authorized_keys文件中已经有了mth和mth01的公钥
调整文件夹和文件的权限
1.先调整文件夹~/.ssh的权限:
chmod 700 ~/.ssh
2.在调整文件~/.ssh/authorized_keys的权限:
chmod 600 ~/.ssh/authorized_keys
至此,非root账号的SSH免密码登录配置已经完成,在mth01输入命令ssh u01@mth试试,如下,顺利登录,不需要输入密码:
如若想mth免密登录mth01只需要将mth下的~/.ssh/authorized_keys文件同步到mth01上并授权;
scp ~/.ssh/authorized_keys u02@mth01:~/.ssh/
注:若是想以root用户免密登录就在root用户下执行以上操作。