专栏首页LanceToBigDatalinux(十)配置ssh免密登录实现

linux(十)配置ssh免密登录实现

知道ssh的朋友应该知道它是用来干什么的,如果你不知道什么是ssh远程登录的话,可以去看一下我的上一篇博客,关于linux的网络基础的知识。 备注:ssh是用于远端登入。执行ssh指令开启终端机阶段作业,并登入远端主机。

一、ssh远程登录    

今天要和大家说的是,当我们一台客户机要远程登录到服务器的时候,输入密码才能登录成功。

过程流程图:

  所以我们在想能不能我们不需要输入密码,直接使用ssh 用户名@服务器ip就可以登录呢?

二、ssh免密登录原理   

    看到这个图可能大家有一点蒙逼。我给大家解释一下。

    我们在主机A和主机B中分别使用ssh-lkeygen命令,生成用来加密的公钥和私钥。然后我们把主机A的公钥放到主机B下面的.ssh/authorized_keys文件当中。

    当我们下次使用ssh 用户名@服务器ip登录的时候,主机B呢就使用:主机A的公钥+主机B 的密码发送给主机A,然后主机A使用自己的私钥解密,得到主机B的密码,

    这样就实现了ssh免密登录的功能。

三、和ssh相关的远程拷贝命令scp

3.1、命令说明

    进行远程拷贝

3.2、命令语法

    scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 [...] [[user@]host2:]file2

    简易写法:scp [option(s)] source destination

3.3、参数说明

      -1: 强制scp命令使用协议ssh1            -2: 强制scp命令使用协议ssh2            -4: 强制scp命令只使用IPv4寻址            -6: 强制scp命令只使用IPv6寻址            -B: 使用批处理模式(传输过程中不询问传输口令或短语)            -C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)            -p:保留原文件的修改时间,访问时间和访问权限。            -q: 不显示传输进度条。     -r: 递归复制整个目录。            -v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。             -c cipher:以cipher将数据传输进行加密,这个选项将直接传递给ssh。             -F ssh_config:指定一个替代的ssh配置文件,此参数直接传递给ssh。             -i  identity_file:从指定文件读取传输时使用的密钥文件,此参数传递给ssh。             -l  limit: 限定用户所能使用的带宽,以Kbit/s为单位。             -o  ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,             -P  port:注意是大写的P, port是指定数据传输用到的端口号             -S  program:指定加密传输时所使用的程序。此程序必须能够理解ssh的选项。

3.4、测试

  服务端

  如果远程拷贝的是目录的话,要加-r

四、免密登录的实现

 4.1、环境

  本人是使用的ubuntu17.04的版本的桌面版作为客户端,使用ubuntu的server版作为服务器端。

4.2、实现过程

  注意:进行SSH免密登录的是两台机器的用户名相同例如有A、B两台机器,这两台机器上都有一个用户名同为zyh的用户。现在的需求是在A机器上通过免密(不输入密码,即免密)方式登录B机器。。我们可以直接使用:ssh 服务器端的ip登录。      当用户名不相同的时候,就要使用:ssh 服务器端的用户名@服务器端的ip进行登录。在这里我本人的是两台机器用户名是相同的

      客户端:

       服务器端:

第一步:分别在A和B机器上使用命令“ssh-keygen”生成公钥和私钥。                      执行该命令之后会在zyh用户的家目录下生成“.ssh/”目录和在该“.ssh/”目录下生成公钥“id_rsa.pub”文件和私钥“id_rsa”文件。

    注意:公钥是用来加密的,私钥是用来解密的。

 第二步:将A机器上的zyh用户家目录下的.ssh/目录下的id_rsa.pub拷贝到B机器的zyh用户的家目录下(注意是家目录,不是.ssh目录)。

      命令:scp /home/zyh/.ssh/id_rsa.pub zyh@1.0.0.3:~                      命令说明:将上述命令中的“B”更换为具体的主机名或者是IP。注意是拷贝到B机器上的briup用户的家目录,不是“.ssh”目录。

    这里是因为主机A和主机B使用的是同一个用户,所以没有使用zyh@1.0.0.3:~

    查看服务器端

第三步:在B机器上,将刚刚从A机器上拷贝过来的“id_rsa.pub”(即B机器zyh用户家目录下的“id_rsa.pub”)的内容复制到B机器上的zyh家目录下的“.ssh”目录下的“authorized_keys”文件(注意:第一次使用的话,是没有这个文件的)中。                         命令:cat /home/zyh/id_rsa.pub >> /home/zyh/.ssh/authorized_keys                         命令说明:上述命令是在B机器上执行

第四步:更改第三步执行命令所生成的“authorized_keys”文件的操作权限为600。(这是ssh协议所要求的)                         命令:chmod 600 /home/zyh/.ssh/authorized_keys                         命令说明:上述命令在B机器上执行

第五步:在A机器上通过无密码登录B机器。                         命令:ssh B                         命令说明:上述命令在B机器上执行,将“B”更换为具体的主机名或IP地址。(这是在主机A和主机B用户名相同的情况)

成功测试

  补充:在使用SSH工具进行远程登录的时候,如果登录的两个机器的用户名相同,可以直接使用命令“ssh 主机名/IP”来远程登录,而不需要输入用户名,即不需要以“ssh zyh@主机名/IP”这样的方式登录。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SpringBoot(三)整合Redis

    spring boot对常用的数据库支持外,对nosql 数据库也进行了封装自动化。 redis介绍 Redis是目前业界使用最广泛的内存数据存储。相比memc...

    用户1195962
  • MySQL(四)之MySQL数据类型

    一、数据类型概述  MySQL的数据类型有大概可以分为5种,分别是 整数类型、浮点数类型和定点数类型、日期和时间类型、字符串类型、二进制类型。现在可以来看看你对...

    用户1195962
  • TCP/IP(六)应用层(DNS和HTTP协议)

    前言 到这一篇我已经把TCP/IP五层模型详细的说明了一遍,大体的从物理层到最上层的应用层做了一个大概的了解,其实总体学下来东西非常的多,我们需要经常的去系统性...

    用户1195962
  • ssh 双机互信:免密码登录设置步骤及常见问题

    在 linux 系统管理中,设置免密码登录,进行机器的批量管理是最常用的一个方法。比如针对几十甚至上百台线上机器,通常我们会设置一台“发布机”作为中央控制机对其...

    用户1177713
  • git使用双秘钥

    由于新项目需要两个github账号,然后一个git秘钥只能绑定一个号,所以特地写出教程,教你如何配置双秘钥

    huanhao
  • SSH快速登录服务器

    平时有许多服务器需要通过终端进行管理,如果每次都使用ssh username@ipdomain这种命令会显得麻烦,效率低下而且还需要每次输入密码。所以这里要说的...

    Huramkin
  • openSSH服务及其应用

    若与
  • 如何实现 ssh 无密码登录

    假设你是hostA上的一个用户"aliceA",想以用户“aliceB”的身份ssh到hostB上,但又不想输入密码。那么,你可以参考这篇教程实现ssh无密码...

    小小科
  • 推荐使用 SSH 方式连接 Git 服务

    Git 已经成为我们开发最流行的版本控制工具了,Git 支持多种传输协议,其中最常用的就是https 和 ssh,平常我们用 https 比较多,这种方式 pu...

    码农小胖哥
  • ssh服务、密钥登陆配置

    环境内核信息: [root@zabbix-01 ~]# uname -a Linux lodboyedu-01 2.6.32-696.el6.x86_64 #1...

    863987322

扫码关注云+社区

领取腾讯云代金券