【Linux】SSH免密登录配置

SSH免密登录配置

前提:两用户已存在

用户A:user_a
用户B:user_b
先要求从user_a到用户user_b进行ssh和scp免密登录。

登录用户user_a

1、 检查/home/user_a/.ssh目录下是否已存在id_rsa.pub
[user_a@vmhost ~]$ ls /home/user_a/.ssh
  • user_a用户下生成密钥,所有设置都使用默认,直接三个回车
[user_a@vmhost ~]$ ssh-keygen -t rsa

【Linux】SSH免密登录配置_第1张图片

释义:

Enter file in which to save the key (/home/user_a/.ssh/id_rsa)文件保存的位置,默认为当前"用户身份"的主文件夹下的.ssh文件夹下的id_rsa
Enter passphrase (empty for no passphrase) 输入连接密码,默认为空
Enter same passphrase again 再次输入密码,默认为空

我们可以查看一下当前用户主目录下的.ssh文件夹

[user_a@vmhost ~]$ cd ~/.ssh
[user_a@vmhost .ssh]$ ll
total 12
-rw-------. 1 user_a user_a 1675 Jul 22 13:38 id_rsa
-rw-r--r--. 1 user_a user_a  393 Jul 22 13:38 id_rsa.pub
-rw-r--r--. 1 user_a user_a  402 Jul 22 12:35 known_hosts

可以发现下面有两个文件:id_rsaid_rsa.pub,其中id_rsa.pub是公钥,id_pub是私钥

2、 将id_rsa.pub内容手动拷贝到主库服务器user_b用户的/home/user_b/.ssh/authorized_keys文件中,如果authorized_keys文件不存在,手动创建该文件,最后进行权限赋予
# 切换到用户user_b
[user_a@vmhost ~]$ su – user_b

# 将用户user_a的公钥拷贝至.ssh目录下
[user_b@vmhost ~]$ scp -p [email protected]:/home/user_a/.ssh/id_rsa.pub /home/user_b/.ssh/authorized_keys

[user_b@vmhost ~]$ cd /home/user_b/.ssh/
[user_b@vmhost .ssh]$ chmod 600 authorized_keys

3、登录测试:从user_a登录至user_b
[user_a@vmhost ~]$ ssh [email protected]

常见问题

SSH免密登录配置成功后不生效

1) authorized_keys是个文件,不是目录
第一次操作时,没有仔细看,先创建了目录authorized_keys,然后将id_rsa.pub拷贝到authorized_keys目录下,导致ssh登录失败

2)/home/user_b目录的属主和权限配置不当
SSH不希望home目录和~/.ssh目录对组有写权限

正常情况下,新建的用户目录权限是: drwxr-xr-x,即:755

先查看user_b用户目录的权限:

[root@vmhost ~]# ll /home/
 drw-r--r--. 1 user_b user_b  402 Jul 22 12:35 user_b

于是执行以下命令进行更改:

chmod 755 /home/user_b

参考文章:https://blog.csdn.net/lisongjia123/article/details/78513244

你可能感兴趣的:(Linux)