Linux主机之间 使用 SSH 免密登录「建议收藏」

    首先看SSH免密登录简易原理图:主机A想要SSH免密登录主机B,首先需要将主机A的SSH公钥复制到主机B的授权列表文件,A登录B时,B会查看自己的授权列表文件,若存在A的公钥,经过一系列验证后,即可登录                  首先准备两台主机SSH-A和SSH-B(注意:两台主机必须能ping通)    我…

大家好,又见面了,我是你们的朋友全栈君。

        首先看SSH免密登录简易原理图: 主机A想要SSH免密登录主机B, 首先需要将主机A的SSH公钥复制到主机B的授权列表文件, A登录B时,B会查看自己的授权列表文件, 若存在A的公钥,经过一系列验证后,即可登录 

                        Linux主机之间 使用 SSH 免密登录「建议收藏」

       首先准备两台主机 SSH-A 和 SSH-B(注意:两台主机必须能 ping 通

       我的 SSH-A 主机的 IP 是:192.168.198.12, 

               SSH-B 主机的 IP 是:192.168.198.13 ,

       !!!!SSH Key 是针对主机中某一个用户的, 每个用户的SSH Key都不一样

             开始(主机 SSH-A 免密登录主机 SSH-B):      

       1.  在 SSH-A 生成 用户 SA 的 SSH Key

            在SA用户下执行下面的命令:   ssh-keygen -t rsa

            中间的出现 Enter passphrase(empty for no passphrase) 和 The key fingerprint is  直接回车, 默认的就行

             Linux主机之间 使用 SSH 免密登录「建议收藏」

        2.  默认生成的 .ssh 目录默认保存在用户主目录下(我这的用户主目录是/home/SA ),进入.ssh目录

             进入用户主目录, 由于.ssh是隐藏文件,需使用 ls-all 命令才能看到 

             Linux主机之间 使用 SSH 免密登录「建议收藏」

        3.  将.ssh目录下的 id_rsa.pub 远程拷贝到 SSH-B 主机上(远程拷贝命令 scp)

             scp id_rsa.pub SB@192.168.198.13:/home/SB

             此命令的意思是:从本机将 id_rsa.pub 文件 以 SB 这个用户的身份 写到192.168.198.13(SSH-B)主机下的 home/SB 目               录下, SB 是 SSH-B主机上的一个用户,  /home/SB 是 SSH-B 的用户主目录, 中间需要输入 SB 的用户密码

             Linux主机之间 使用 SSH 免密登录「建议收藏」

        4. 在主机 SSH-B 里, 进入 /home/SB 目录(以 SB 这个用户的身份), 同样的过程, 为 SB 用户生成 SSHKey

            并进入 .ssh 目录下

            Linux主机之间 使用 SSH 免密登录「建议收藏」

        5. 将 SSH-A 的公钥添加到 SB 用户 .ssh 目录下的 authorized_keys 文件中, 若 authorized_keys 不存在, 则手动创建一                个,注意:authorized_keys 的权限必须为 -rw——,即只有SB这个用户可读可写, 其他无任何权

              可通过 chmod 600 authorized_keys 修改权限

           Linux主机之间 使用 SSH 免密登录「建议收藏」

        6. 测试登录, 登陆成功, 大功告成

            ssh SB@192.168.198.13    表示使用 SB 这个用户 登录 192.168.198.13 主机

            Linux主机之间 使用 SSH 免密登录「建议收藏」    

     

追求完美: 

1.  远程登录到别的主机后怎么 回到原来的主机

     从主机SSH-A 登录到 SSH-B主机: ssh SB@192.168.198.13

    回到原来的主机: ssh SA@192.168.198.12

    问题: 登录回源主机时需要输入 SA 的用户密码, 因为我们没有将 用户 SA 的 public key 添加到 用户SA 的             

                authorized_keys 文件中, 只需要在用户SA 的authorized_keys 文件中添加 SA 自己 的公钥, 即可免密切换回源主                 机主机

2.  执行 ssh SB@192.168.198.13 远程登录时发现还需要输入密码

     (1).  检查文件名是否错误, 必须为 authorized_keys

     (2).  检查authorized_keys的权限是否为-rw——

     (3). 若(1), (2)都没问题, 则给 SB 用户添加超级用户权限

            方法:打开 /ect/sudoers 文件, 找到 root      ALL=(ALL)       ALL行,

                                        在这行下面添加一行 SB      ALL=(ALL)       ALL 即可

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129586.html原文链接:https://javaforall.net

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • leetcode-88合并两个有序数组(双指针)

    leetcode-88合并两个有序数组(双指针)题目链接给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。示例 1:输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]示例 2:输入:nums1 = [1]

    2022年8月8日
    4
  • navicat 15激活工具破解方法「建议收藏」

    navicat 15激活工具破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    48
  • JavaScript数组怎么删除指定元素?[通俗易懂]

    JavaScript数组怎么删除指定元素?[通俗易懂]js数组是js部分非常重要的知识,有时我们有这么个需求js数组删除指定元素,先定义一个函数来获取删除指定元素索引值,然后用js数组删除的方法,来删除指定元素即可,就两步不难,很简单。1、JS的数组对象定义一个函数,用于查找指定的元素在数组中的位置,也就是索引值,代码如下:Array.prototype.indexOf=function(val){for(vari=………

    2025年7月6日
    4
  • java线程池面试题_java之线程池面试题

    java线程池面试题_java之线程池面试题面试官:线程池有哪些?分别的作用是什么?常用的线程池有:newSingleThreadExecutornewFixedThreadExecutornewCacheThreadExecutornewScheduleThreadExecutor1、newSingleThreadExecutor:单个线程的线程池,即线程池中每次只有一个线程工作,单线程串行执行任务;2、newFixedThreadExe…

    2022年5月22日
    26
  • 加壳工具简单使用

    加壳工具简单使用时间20210107,环境winxp介绍一些加壳工具和和它们的简单使用,为了方便描述,就先写了一个原程序,原程序的逻辑很简单,代码如下。1. #include<stdio.h>2. intmain()3. {4. inti=5;5. scanf(“%d”,&i);6. while(i–)7. {8. printf(“HelloWorld%d\n”,i);9. }

    2022年6月27日
    28
  • java11-泛型及其使用[通俗易懂]

    java11-泛型及其使用[通俗易懂]1.概述就本质而言“泛型”的意思就是参数化类型。参数化类型很重要,因为使用该特性创建的类、接口以及方法可以以参数的形式指定操作的数据类型。泛型通俗的说就是方法的返回值或参数是不确定的,可以随创建

    2022年8月4日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号