原理简介


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. bzoj 3065: 带插入区间K小值 替罪羊树 && AC300

    3065: 带插入区间K小值 Time Limit: 60 Sec  Memory Limit: 512 MBSubmit: 1062  Solved: 253[Submit][Status] Des ...

  2. QLGame 2d Engine SpriteBatch类创建

    GitHub地址:https://github.com/wsgzxl/QLGame2dEngine 今天说五个问题: 1.前面说到的 颜色不对的问题,是因为FreeImage读取出来的数据格式与Ope ...

  3. AT&T汇编中系统调用和C函数调用的使用

    我的博客:www.while0.com 区别: 系统调用的参数存储在寄存器中,函数调用的则存储在堆栈中. 系统调用使用中断方式,函数调用使用call指令 相同之处: 都有返回值和输入值 返回值都存储在 ...

  4. 关于O(n)算法

    首先要明确一点,当数据规模达到百万时需用O(n)算法 如何实现O(n)算法,其实是对原有算法的一种改进 后者说是 原有算法+一点小性质=O(n)算法 下面我将举几个例子来说明这一点: 1.后缀数组中h ...

  5. Apache Log4j使用实例

    Apache Log4j使用实例  原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.  Blog:  1.Logger类 通过Logger类的静 ...

  6. [PeterDLax著泛函分析习题参考解答]第4章 Hahn-Bananch 定理的应用

    1. 证明: 若在 4.1 节中取 $S=\sed{\mbox{正整数}}$, $Y$ 是收敛数列构成的空间, $\ell$ 由 (14) 式定义, 则由 (4) 给出的 $p$ 和由 (11) 定义 ...

  7. HTMLTestRunner 自动化测试报告

    http://tungwaiyip.info/software/HTMLTestRunner.html下载,将下载后的文件放在python的Lib目录下 # -*- coding:utf-8 -*- ...

  8. SLua 中使用 Lua 5.3 的编译工程

    2016-03-05 更新: 之前编译的库,在 Android 下 Lua_Number 和 Lua_Integer 被编译为了32位,导致从 C# 到 Lua 过程中有64位到32位整型转换会出现溢 ...

  9. JavaScript---网络编程(5)-自定义对象Json、Dom模型概念讲解

    这节博客主要讲解Dom模型概念~和JSON的简单介绍 首先,还是先上out.js的代码: function println(param){ document.write(param+"< ...

  10. 关于缓存的tips——HTTP权威指南读书心得(十三)

    上一章介绍了缓存新鲜度判断的基本原理,本章对于缓存新鲜度判断方法进行一些补充(更新间隔略长略长..). 关于缓存的TIPS 服务器可以通过http定义的几种header对可以缓存数据的存在时间进行控制 ...