Linux SSH使用公钥私钥实现免登陆-程序员宅基地

技术标签: 运维  shell  操作系统  

写shell免不了要远程执行shell命令,自然就要实现免登陆。免登陆的原理:

 

首先说明一下处理机制:  

 1.非对称密钥就是一对密钥-公钥和私钥。  

 2.私钥由系统中没个人自己持有,一般保存在自己的电脑里或u盘里。  

 3.公钥则在网络上传递,就是可以传递给通信中的对方,也就意味这可以被黑客截获。  

 4.用某个人的私钥加密的数据只有用那个人的公钥解密,同样用公钥加密的数据也只有用私钥解密。  

 

 这样我们在信息处理中的应用一般的流程可以是这样:  

 假设我们有两个消息方a和b  

 1.a要b发消息,首先得到或者由b传递给a一个b的公钥。  

 2.然后a用b的公钥加密消息然后传递给b。  

 3.b用自己的私钥解密消息得到明文。  

 

 

公钥和私钥(我是文盲,钥字之前都是读yao,这是多音字这里应该念yue),是成对出现的,一旦任何一个做了更改都会验证失败。

 

1.免登陆的实现:

 

使用下例中ssky-keygen和ssh-copy-id,仅需通过3个步骤的简单设置而无需输入密码就能登录远程Linux主机。 

ssh-keygen 创建公钥和密钥。 

ssh-copy-id 把本地主机的公钥复制到远程主机的authorized_keys文件上。

ssh-copy-id 也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置合适的权限 。

 

步骤1: 用ssh-key-gen 在本地主机上创建公钥和密钥

ligh@local-host$ ssh-keygen -t rsa

Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):[Enter key] 

Enter passphrase (empty for no passphrase): [Press enter key]

Enter same passphrase again: [Pess enter key]

Your identification has been saved in /home/jsmith/.ssh/id_rsa.

Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub. 

The key fingerprint is: 33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9 

ligh@local-host

 

 

步骤2: 用ssh-copy-id 把公钥复制到远程主机上

ligh@local-host$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

ligh@remote-host‘s password:

Now try logging into the machine, with ―ssh ?remote-host‘‖, and check in: 

.ssh/authorized_keys to make sure we haven‘t added extra keys that you weren‘t expecting.

 

[注: ssh-copy-id 把密钥追加到远程主机的.ssh/authorized_key 上.]

 

步骤3: 直接登录远程主机

ligh@local-host$ ssh remote-host 

Last login: Sun Nov 16 17:22:33 2008 from 192.168.1.2 

 

[注: SSH 不会询问密码.] 

ligh@remote-host$ 

[注: 你现在已经登录到了远程主机上]

 

2.登陆失效、公钥失效的情况

之前没有用ssh-copy-id复制公钥到远程机器上,而是用scp拷贝之后再手动加入到authorized_keys。

但是某一天这种做法忽然失效了。。。暂时也没找到原因。但是后来后来重新生成密钥,然后使用ssh-copy-id解决了问题。

注意重新生成密钥之后之前设置的免登陆slave端都要重新拷贝公钥。

转载于:https://my.oschina.net/ezsky/blog/710449

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/chunchengshu9823/article/details/101050017

智能推荐

学习小组结伴_第一行是一个整数n,表明n个同学。(2<=n<=50,n为偶数) 。 第二行n个整数表明n个同-程序员宅基地

文章浏览阅读1.2k次。题目内容:为了促进互帮互相,决定成立学习小组。小组结伴的规则是这样的:先将学号按升序排列,排在最前的一个人和排在最后的那个人结成同伴,排在第2个的与排在倒数第2个的结成同伴…依次类推,2个一组成同伴。输入格式:第一行是一个整数n,表明n个同学。(2<=n<=50,n为偶数) 。 第二行n个整数表明n个同学的学号,学号之间有一个空格,学号是无序输入的。如果输入的学生数是奇数,则输出提示信息:“odd number”输出格式:共n/2行,每行二个整数,表明结伴同学的学号,两个学_第一行是一个整数n,表明n个同学。(2<=n<=50,n为偶数) 。 第二行n个整数表明n个同

条件注解@Conditional_java 不存在才创建 @conditional-程序员宅基地

文章浏览阅读110次。如果没有havingValue,那么会采用prefix+name 或 prefix+value 的值,去和false比较,如果值等于false 那么失败, 如果不等于false 成功。定义:在spring框架中用于根据特定条件决定是否创建或者注册某个bean或配置的注解,他们可以根据运行时环境,配置属性,或其他条件来动态的控制bean的创建或者注册。在上述代码中,表示会去application文件中,读取前缀为:Spring.datasource下,名字为type的key的值,读取到之后,会跟。_java 不存在才创建 @conditional

PDF 参照流/交叉引用流对象(cross-reference stream)的解析方法_php无法解析压缩的交叉引用和对象流的pdf-程序员宅基地

文章浏览阅读3.8k次。采用交叉引用流对象有以下几点好处:1) 压缩后存储的信息更紧凑;2) 可以访问存储在对象流中的压缩对象,并允许以后加入新的参照选项类型。_php无法解析压缩的交叉引用和对象流的pdf

面试只会问八股?你应该好好思考怎样做一场面试_如果面试一直问八股-程序员宅基地

文章浏览阅读517次。八股文并不能很好地测试候选人水平,我们应该思考更有效的面试方法。_如果面试一直问八股

英特尔Realsense学习笔记番外篇一:QWindowsContext: OleInitialize() failed_qwindowscontext: oleinitialize() failed: "com erro-程序员宅基地

文章浏览阅读2k次。导入pyrealsense2以后,使用PyQt5,会有以下警告:QWindowsContext: OleInitialize() failed: "COM error 0xffffffff80010106 RPC_E_CHANGED_MODE (Unknown error 0x080010106)"此警告在使用过程中没有影响程序的正常执行,如果不需要看到waring可以导入warnings库过滤warning。参考文献:1.WindowsContext:OleInitialize()失_qwindowscontext: oleinitialize() failed: "com error 0xffffffff80010106 rpc_e

linux DSA 开发(一)-程序员宅基地

文章浏览阅读6.5k次,点赞2次,收藏32次。linux DSA 开发(一)本文主要是翻译,原文链接如下:https://www.kernel.org/doc/html/latest/networking/dsa/dsa.html纲要本文档描述了**分布式交换机架构 (DSA)**子系统的设计原则、限制、与其他子系统的交互、如何为该子系统开发驱动程序设计原则分布式交换机架构最少是用于支持使用 Linux 的 Marvell 以太网交换机的子系统(MV88E6xxx),但此后也发展为支持其他供应商。这种设计_linux dsa

随便推点

LeetCode #566 - Reshape the Matrix__%#:566-程序员宅基地

文章浏览阅读90次。题目描述:In MATLAB, there is a very useful function called 'reshape', which can reshape a matrix into a new one with different size but keep its original data.You're given a matrix represented by a tw...__%#:566

UserWarning: Workbook contains no default style, apply openpyxl‘s default warn no default style 解决方案-程序员宅基地

文章浏览阅读6.4w次,点赞15次,收藏11次。本文主要介绍了UserWarning: Workbook contains no default style, apply openpyxl’s default warn(“Workbook contains no default style, apply openpyxl’s default”)解决方案,希望能对新手有所帮助。文章目录1. 问题描述2. 原理详解3. 解决方案 3.1 安装库 3.2 使用正确的API_userwarning: workbook contains no default style, apply openpyxl's default wa

c++中类成员函数的相互调用_c++类的成员函数调用其他成员函数-程序员宅基地

文章浏览阅读8.6k次,点赞4次,收藏23次。c++中类成员函数的相互调用_c++类的成员函数调用其他成员函数

Window Linux双系统安装 超详细教程_windows linux双系统-程序员宅基地

文章浏览阅读3.5w次,点赞71次,收藏615次。Window Linux双系统安装历程今天下午搞了几个小时,可谓是困难重重,但是实际上只是被一个很小的问题困住了,其它地方都很简单。接下来简单讲一下安装的步骤以及遇到的问题。先讲一下设备状况:一台12年买的i3 window7 待报废的lenovo 笔记本一个32g的usb3.0另一台新的win10笔记本电脑磁盘分区首先要在安装双系统的电脑上,划分硬盘中的一个分区来装linxu。点击我的电脑(此电脑)->管理-> 磁盘管理比如这里我们的e盘原本有98.55g,然后还有_windows linux双系统

Unity 模型涂鸦-程序员宅基地

文章浏览阅读2.3k次。首先,要获取鼠标点击处对应的UV坐标,详见API:https://docs.unity3d.com/ScriptReference/RaycastHit-textureCoord.htmlAPI中其实已经重画了图片,但只是一个像素,下面给线设置宽度: /// &lt;summary&gt; /// 画线 /// &lt;/summary&gt; /// ..._unity 模型涂鸦

qt使用q3dsurface绘制三维曲面图-程序员宅基地

文章浏览阅读7k次,点赞22次,收藏86次。在QT中使用Q3Dsurface绘制三维图。项目需要,而大部分教程都是比较简单的绘制,不能满足需求,本教程将三维数组数据绘制成三维曲面,在绘制三维曲面时,我原本以为是给入数据,然后由框架拟合出曲面,其实不是,本质上是一个一个点连接的,需要按顺序连接好节点,即一行一列连接,否则曲面就会看不出形状。_q3dsurface

推荐文章

热门文章

相关标签