博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ssh免秘钥实现及其原理
阅读量:4101 次
发布时间:2019-05-25

本文共 687 字,大约阅读时间需要 2 分钟。

SSH免秘钥登录 就是避免了主机之间ssh需要输用户名和密码这一步。

先理解三个名称 公钥(id_dsa.pub)、私钥(id_dsa)、授权列表文件(authorized_keys)  

 

实现方法:以A B两台机器为例

1. AB两台机器分别生成各自的公钥(id_dsa.pub)+私钥(id_dsa)

使用ssh-keygen命令,rsa|dsa两种加密方法,任意选一个。

# ssh-keygen -t dsa  然后全部默认回车;在 ~/.ssh目录下查看生成了 id_dsa.pub+id_dsa

2.将A的公钥内容添加到B机器的授权列表文件(authorized_keys)

 id_dsa.pub 拷贝到B机器的 ~/.ssh/authorized_keys中 (内容重定向追加到文件中)

---两步就可以实现A机器ssh免秘钥登录B机器啦

 

3.将B的公钥内容添加到A机器的授权列表文件(authorized_keys)

---三步就可以实现AB机器ssh免秘钥互相登录啦

 

登录原理过程:以A机器ssh登录B机器为例。

1.A向B发送登录请求

2.B 在自己的授权列表中查看是否有A的公钥;没有则拒绝A登录

3.B中有A公钥,则B随机生成一个字符串,并用A的公钥进行加密,发送给A

4.A 收到加密后的字符串,用自己的私钥进行解密,得到原始字符串,返回给B

5.B 对比字符串,如果一致就授权A登录。 A登录B 成功。

 

 

-----------------------有兴趣可以自行了解下列名词。

对称加密 / 非对称加密   、dsa / rsa  、known_hosts

 

 

 

 

 

转载地址:http://woksi.baihongyu.com/

你可能感兴趣的文章
var、let、const 的本质区别是什么
查看>>
监听一个变量的变化,需要怎么做
查看>>
Promise.prototype.finally 的作用,如何自己实现 Promise.prototype.finally
查看>>
一文走进 HTTP 与 TCP 协议,它们的区别与联系
查看>>
http header怎么判断协议是不是websocket
查看>>
为什么说HTTPS比HTTP安全呢
查看>>
HTTP/2对比HTTP/1.1,特性是什么?是如何解决队头阻塞与压缩头部的?
查看>>
说一下 HTTP/3 新特性,为什么选择使用 UDP 协议?
查看>>
如果让你去实现一个 CSRF 攻击你会怎么做?
查看>>
Sqlite3递归查询,分页查询
查看>>
C# 图形编程 for RadioButton group ,checked & find
查看>>
Sqlite删除所有表的数据 C#实现
查看>>
C#使用WebService和Session
查看>>
如何学习新技术?
查看>>
Myeclipse使用常见问题汇总
查看>>
性能大提速 MyEclipse终极优化四要点
查看>>
struts2标签应用
查看>>
弱类型、强类型、动态类型、静态类型语言的区别是什么?
查看>>
Struts2技术内幕图书 转载
查看>>
Java异常分类
查看>>