Linux 配置 SSH 免密钥登录-

蔚落 2022-08-02 13:51 201阅读 0赞

Linux 配置 SSH 免密钥登录

  • 1-免密钥登陆原理
    • 1.1-免密钥原理
    • 1.2-新手必读
  • 2-配置免密钥登陆
    • 2.1-查询机器名称
    • 2.2-查看网络连通性
    • 2.3-切换免密钥登录用户
    • 2.4-生成密钥
    • 2.5-公钥追加到 authorized_key 文件
    • 2.6-验证免秘钥登录
    • 2.7-异常情况

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-查询机器名称

  1. cat /etc/hostname

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

2.2-查看网络连通性

  1. vim /etc/hosts
  2. # 在 hosts 中添加对机器名的解析
  3. 192.168.41.5 master
  4. 192.168.41.7 slave_01
  5. 192.168.41.9 slave_02

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

2.3-切换免密钥登录用户

  1. su hadoop

2.4-生成密钥

  1. ssh-keygen -t rsa

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

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

在这里插入图片描述

2.5-公钥追加到 authorized_key 文件

语法:ssh-copy-id命令

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

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

  1. # machine的三种写法
  2. ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@192.168.41.5
  3. ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@slave_01
  4. 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

  1. ssh 192.168.41.5
  2. ssh slave_01
  3. ssh 192.168.41.9

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

2.7-异常情况

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

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

  1. chown hadoop: /home/hadoop/.ssh
  2. chown hadoop: /home/hadoop/.ssh/*
  3. chmod 700 /home/hadoop/.ssh
  4. chmod 600 /home/hadoop/.ssh/*

发表评论

表情:
评论列表 (有 0 条评论,201人围观)

还没有评论,来说两句吧...

相关阅读

    相关 docker ssh登录

    一、概述 有一台跳板机,已经实现了免密登录后端服务器。但是我写了一个django项目,它是运行在容器中的,也需要免密登录后端服务器。 虽然可以在容器中手动做一下免密登录

    相关 Mac使用ssh登录Linux

    > ssh登录Linux通常有两种方法:用户名密码登录、用户名公钥登录; > 使用用户名密码登录每次都要输入密码,相当麻烦,而使用用户名公钥登录则可以避免这个问题 打开本