Linux 配置 SSH 免密钥登录-


1-免密钥登陆原理

1.1-免密钥原理

  • 使用一种被称为"公私钥"认证的方式来进行SSH登录。
  • "公私钥"认证方式简单的解释:
    • 首先在客户端上创建一对公私钥(公钥文件:~/.ssh/id_rsa.pub、 私钥文件:~/.ssh/id_rsa)。
    • 然后把公钥放到服务器上(~/.ssh/authorized_keys,自己保留好私钥。
    • ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配,如果匹配成功就可以登录了。

1.2-新手必读

  • 配置免登录前,请确保网络环境可以连通
  • 免登录其实是在本机生成两把锁,一把所谓的公钥是放到要登录的那台服务器上的,其实是一串文本。**
  • 被登录的服务器上只会有一个公钥文件,叫authorized_keys。如果被登录的服务器有多个客户端要连上来,就会把每个文本密钥存成一行。
  • 客户端发送到服务器端的密钥文件一定要放到登录用户主目录的~/.ssh这个隐藏目录下。
    比如用hadoop用户登录,若hadoop的主目录是/home/hadoop,密钥文件一定是在/home/hadoop/.ssh/下 。
  • 如果直接将authorized_keys的文件从客户端通过scp或者ssh-copy-id方式发送到服务器端,会覆盖原来的文件,对其他用户有影响,所以发送时要进行改名后合并。

2-配置免密钥登陆

2.1-查询机器名称

cat /etc/hostname

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2-查看网络连通性

vim /etc/hosts
# 在 hosts 中添加对机器名的解析
192.168.41.5  master
192.168.41.7  slave_01
192.168.41.9  slave_02

在这里插入图片描述
在这里插入图片描述

2.3-切换免密钥登录用户

su hadoop

2.4-生成密钥

ssh-keygen -t rsa

根据提示一直按Enter
在这里插入图片描述
生成的公钥和私钥,如下图:

# 公钥 私钥位于用户目录下 .ssh隐藏文件夹下
# 私钥:id_rsa;公钥:id_rsa.pub
ls ~/.ssh/

在这里插入图片描述

2.5-公钥追加到 authorized_key 文件

语法:ssh-copy-id命令

# -i:指定公钥文件
# user:用户
# machine:ip 或 /etc/hosts中配置主机名
ssh-copy-id [-i [identity_file]] [user@]machine

将密钥发送到需要免密钥登录的机器上:

# machine的三种写法
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@192.168.41.5
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@slave_01
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@192.168.41.9

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
备注:

  • 修改用户密码:su root—>passwd username
  • scp命令:scp ~/.ssh/id_rsa.pub >> user@machine:~/.ssh/authorized_keys
  • cat命令:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

2.6-验证免秘钥登录

注意:免密钥用户hadoop

ssh 192.168.41.5
ssh slave_01
ssh 192.168.41.9

在这里插入图片描述在这里插入图片描述

2.7-异常情况

若每次ssh登陆时需要输入密码,跟没有配置免密登陆时一样情况。需要修改.ssh文件夹访问权限为登陆用户。

假设无法登陆slave_01hadoop用户,则需要在slave_01执行以下命令:

chown hadoop: /home/hadoop/.ssh
chown hadoop: /home/hadoop/.ssh/*
chmod 700 /home/hadoop/.ssh
chmod 600 /home/hadoop/.ssh/*

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页