原理简介


SSH证书认证登录的基础是一对唯一匹配密钥: 私钥(private key)和公钥(public key)。公钥用于对数据进行加密,而且只能用于加密。而私钥只能对使用所匹配的公钥,所加密过的数据进行解密。私钥需要用户单独妥善保管。SSH 客户端使用私钥向服务器证明自已的身份。而公钥是公开的,可以按需将其配置到目标服务器上自己的相应帐号中。

在进行 SSH 登录认证时,进行私钥和公钥协商。如果匹配,则身份得以证明,认证成功,允许登录。否则,将会继续使用密码验证等其它方式进行登录校验。

在 Linux 环境下,通常使用系统自带的 ssh-keygen 软件来创建和管理密钥对。请执行如下步骤创建密钥对:

  1. 以任意具有 ssh-keygen 执行权限的用户登录服务器。
  2. 使用如下指令,基于 rsa 算法创建密钥对:
    ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file inwhich to save the key (/root/.ssh/id_rsa): → 默认保存路径和文件名,可以按需修改。
    Enter passphrase (empty for no passphrase): → 如前面所述,不设置密码,回车确认即可。
    Enter same passphrase again: → 不设置密码,回车确认即可。
    Your identification has been saved in /root/.ssh/id_rsa. → 创建的私钥文件。
    Your public key has been saved in /root/.ssh/id_rsa.pub. → 创建的公钥文件。
    The key fingerprint is:
    17:b8:0e:76:cb:57:21:3b:f2:bb:8b:a2:42:2b:54:be root@iZ233gr74jvZ
    The key's randomart image is:
    +--[ RSA 2048]----+
    | |
    | . |
    | . o . |
    | . . + . |
    | o o S + . |
    | ... . = = o |
    |.. .. + o |
    |. oE . o . |
    | . ... .. +o |
    +-----------------+

    说明:

  • 如果 .ssh 目录不存在,程序会自动创建。

  • 生成的密钥对默认保存在当前用户家目录下的 .ssh 文件夹中,文件名默认为 id_rsa(私钥) 和 id_rsa.pub(公钥)。用户可以按需设置保存路径和文件名。

3.ssh-copy-id  只能copy公钥

ssh-copy-id -i .ssh/id_rsa.pub "-p 22 root@192.168.1.27"

需要输入密码后,就能分发公钥了

4.  验证:ssh root@192.168.1.27 /sbin/ifconfig eth0  查看ip

Windows 环境自动登录

Window 环境下,还是以常见的NetSarang Xshell为例,请执行如下配置进行自动登录:

  1. 单击 文件 > 属性,打开主机属性配置窗口。
  2. 点击 连接 > 用户身份验证,如下图所示,将 方法 设置为 Public Key;将 用户名 设置为已经设置了证书登录的相应用户名;将 用户密钥 设置为对应的私钥。最后,点击 确定。
  3. 这个时候,你已经有了一对密钥,需要开始设定服务器的配置,启用密钥认证登录,同时为了系统安全着想,关闭密码认证的方式

    vim /etc/ssh/sshd_config

    修改下面几处:

    PubkeyAuthentication  yes  #启用PublicKey认证。

    AuthorizedKeysFile       .ssh/authorized_keys  #PublicKey文件路径。

    PasswordAuthentication  no  #不适用密码认证登录。

  4. 上面配置完成后,需要重启sshd服务。
  5. 接着,在你需要的登录的用户家目录的.ssh目录下,编辑authorized_keys文件,将开始我们生成密钥对的公钥写到这个文件中。

    公钥查看方法:点击Xshell菜单的工具,选择用户密钥管理者,双击你刚刚生成的密钥打开属性,选择公钥,复制公钥的内容,稍后使用

  6. 注意:要添加多个用户,需要在这个文件后,换行,加入另一个公钥即可;
  7. 接着,修改该文件的权限,chmod 600 ,否则可能会遇到问题
  8. 至此,登录测试

Linux学习笔记总结--ssh认证登录的更多相关文章

  1. Linux学习笔记 | 配置ssh

    目录: SSH的必要性 将默认镜像源修改为清华镜像源 Linux安装ssh软件 使用putty软件实现ssh连接 Windows下安装winscp SSH的必要性 一般服务器都位于远程而非本地,或者及 ...

  2. Linux 学习笔记

    Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...

  3. 91 Testing Linux学习笔记

    91 Testing Linux学习笔记... 学习地址:91Testing 的Linux教程=====================学习网址:http://www.91testing.net/ar ...

  4. linux学习笔记2-linux的常用命令

    第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装linux操作系统,以及一些基本的设置修改. 本篇博客主要介绍linux中的一些常用的终端命令 ======== ...

  5. Linux学习笔记(一)2015.4.13

    研究生由单片机转Linux学习 首先安装VMware虚拟机,用的是VMware 10.0 在VMware 10.0上安装视频上推荐的Red Hat Linux 5 安装后正式进入Linux学习 笔记1 ...

  6. deepin linux学习笔记(四)进不去图形界面怎么办?

    目录 deepin linux学习笔记(四)进不去图形界面怎么办? 前言 更换成lxde桌面 进不去图形界面怎么办? 总结 deepin linux学习笔记(四)进不去图形界面怎么办? 前言 生命不息 ...

  7. linux学习笔记2 - linux常用命令

    转载请标注原链接:http://www.cnblogs.com/xczyd/p/5543731.html 第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装lin ...

  8. Linux 学习笔记之超详细基础linux命令 Part 13

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 12---------------- ...

  9. Linux 学习笔记之超详细基础linux命令 Part 8

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 7----------------- ...

随机推荐

  1. Android判断界面

         仿造微信,第一次进入去引导界面,否则进启动界面. package edu.hpu.init; import edu.hpu.logic.R; import android.app.Activ ...

  2. uva 1453 - Squares

    旋转卡壳算法: 直接在这个上面粘的模板 主要用途:用于求凸包的直径.宽度,两个不相交凸包间的最大距离和最小距离··· 这题就是求凸包的直径 #include <cstdio> #inclu ...

  3. DHTMLX 前端框架 建立你的一个应用程序教程(四)--添加一个工具条toolbar

    工具条例子 样本如下: 这里我们使用的是dhtmlxToolbar 组件. 添加工具栏到布局中: 1.使用attachToolbar() 方法初始化页面 添加代码到index.html中 dhtmlx ...

  4. 被忽视的eMMC——A1 SD Bench闪存测试

    一直以来,大家对手机的配置方面都比较关注CPU和GPU的架构.频率.核心数等,却经常忽略了手机闪存的速度.实际上手机的闪存素质对手机日常操作的响应.载入速度同样起到举足轻重的影响,今天给大家介绍的则是 ...

  5. 远程仓库版本回退方法 good

    1 简介 最近在使用git时遇到了远程分支需要版本回滚的情况,于是做了一下研究,写下这篇博客. 2 问题 如果提交了一个错误的版本,怎么回退版本? 如果提交了一个错误的版本到远程分支,怎么回退远程分支 ...

  6. Python爬虫处理抓取数据中文乱码问题

    乱码原因:因为你的文件声明为utf-8,并且也应该是用utf-8的编码保存的源文件.但是windows的本地默认编码是cp936,也就是gbk编码,所以在控制台直接打印utf-8的字符串当然是乱码了. ...

  7. Light OJ 1064 - Throwing Dice

    题目大意: 给你n个骰子, 问点数大于等于x的概率是多少? #include<cstdio> #include<cstring> #include<iostream> ...

  8. (转载)JavaScript中的原型和对象机制

    (转载)http://www.cnblogs.com/FlyingCat/archive/2009/09/21/1570656.html 1 对象相关的一些语言特性 1.1 一切皆为对象JavaScr ...

  9. selenium-webdriver的等待方法

    Wait commands in WebDriver Listing out the different WebDriver Wait statements that can be useful fo ...

  10. ARM学习笔记13——LED驱动程序设计

    首先我们要根据开发板原理图得到控制LED灯的引脚是哪个,我们现在以LED1为例,我们已经知道LED1由S5PV210的GPC1_3控制,因此我们按如下步骤进行: 第一步是配制S5PV210的GPC1_ ...