OpenSSH的RSA/DSA密钥认证系统
OpenSSH的RSA/DSA密钥认证系统,它可以代替OpenSSH缺省使用的标准安全密码认证系统。
OpenSSH的RSA和DSA认证协议的基础是一对专门生成的密钥,分别叫做私用密钥和公用密钥。 使用这些基于密钥的认证系统的优势在于:在许多情况下,有可能不必手工输入密码就能建立起安全的连接。尽管基于密钥的认证协议相当安全,但是当用户并不完全了解这些简化操作对安全性的影响,为了方便而使用某些简化操作时,就会出现问题。
公用密钥用于对消息进行加密,只有拥有私用密钥的人才能对该消息进行解密。公用密钥只能用于加密,而私用密钥只能用于对由匹配的公用密钥编码的消息进行解密。RSA(和 DSA)认证协议利用密钥对的这些特殊性质进行安全认证,并且不需要在网上传输任何保密的信息。ssh 协议的版本 1 使用的是 RSA 密钥,而 DSA 密钥却用于协议级 2,这是 ssh 协议的最新版本
ssh-keygen提示输入密码短语(输入的不是远程服务器上系统账户的密码),输入密码短语后,ssh-keygen用这个密码短语加密了私用密钥,以使私用密钥对于那些不知道这个密码短语的人将变得毫无用处。
创建公钥-私钥对
[root@rhce7 ~]# hostname
rhce7.example.com
[root@rhce7 ~]# ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): root1
Enter same passphrase again: root1
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
:fb:8f:1c:4f:::ec:::aa::::fe:0b root@rhce7.example.com
The key's randomart image is:
+--[ DSA ]----+
| . .. |
| o . .. o . |
| o . . o + |
|. . . . . o |
| . + S o . |
| E o . . . . |
| o . . . . |
| . o = |
| +.o |
+-----------------+
将公钥复制到远程系统上的正确位置
[root@rhce7 ~]# ssh-copy-id root@192.168.56.123
The authenticity of host '192.168.56.123 (192.168.56.123)' can't be established.
RSA key fingerprint is da:fe:d3:::eb:d1:::eb:2b::8a:2f:e8:.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.56.123's password: abcd1234 Number of key(s) added: Now try logging into the machine, with: "ssh 'root@192.168.56.123'"
and check to make sure that only the key(s) you wanted were added.
通过密钥登录远程服务器
在这过程中,具体包含以下步骤:
1.本地服务器想使用DSA认证协议登录远程服务器
2.远程服务器的sshd会生成一个随机数,并用本地服务器拷贝过来的公钥进行加密后发送给本地服务器
3.本地服务器使用本地私钥对远程服务器发送来的消息进行解密,解密后再把信息发送给远程服务器
4.远程服务器的sshd再次确认信息,信息验证正确后,通过本地服务器的连接登录请求
[root@rhce7 ~]# ssh 192.168.56.123
Enter passphrase for key '/root/.ssh/id_dsa': root1
Last login: Tue Jul :: from 192.168.56.1
[root@mytest ~]# hostname
mytest.jy.com
OpenSSH的RSA/DSA密钥认证系统的更多相关文章
- RSA/DSA 密钥的工作原理
下面从整体上粗略的介绍了 RSA/DSA 密钥的工作原理.让我们从一种假想的情形开始,假定我们想用 RSA 认证允许一台本地的 Linux 工作站(称作 localbox)打开 remotebox 上 ...
- OpenSSH 密钥管理:RSA/DSA 认证(转载)
我们中有许多人把优秀的 OpenSSH用作古老的 telnet 和 rsh 命令的替代品,OpenSSH 不仅是安全的而且是加密的. OpenSSH 更加吸引人的特性之一是它能够使用基于一对互补的数字 ...
- 使用XShell工具密钥认证登录Linux系统
如果你是一名Linux运维,那么Linux服务器的系统安全问题,可能是你要考虑的,而系统登录方式有两种,密码和密钥.哪一种更加安全呢? 无疑是后者! 这里我为大家分享用Xshell利器使用密钥的方式登 ...
- [转] SSH 密钥认证机制
使用 RSA 密钥对进行 SSH 登录验证 使用 RSA 密钥对验证 SSH 的优点是 1) 不用打密码 2) 比密码验证更安全:缺点是 1) 第一次配置的时候有点麻烦 2) 私钥需要小心保存.Any ...
- Linux之sshkey密钥认证实战
在实际的生产环境中,经常会用到sshkey密钥认证实行数据分发数据等操作,还可以批量操作内网服务器,实行免密认证进行推送分发数据. 1.环境查看 分发服务器 节点服务器 2.服务器添加系统账号 3.生 ...
- 安全终端模拟工具Xshell 5使用密钥认证登录配置详细教程
▲版权声明:本文为博主原创文章,未经博主允许不得转载. Xshell支持SSH1 / SSH2协议,密码和DSA / RSA公钥用户认证方式等各种安全功能,并对各种加密算法进行加密.使用内置的Xshe ...
- Linux之SSH密钥认证
1.SSH协议的认识 SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层基础上的安全协议.SSH 是目前 ...
- 转载 :配置ssh密钥认证自动登录
原文地址 :https://segmentfault.com/a/1190000000481249 在客户端来看,SSH提供两种级别的安全验证.[摘自wikipedia] 第一种级别(基于密码的安全验 ...
- 使用Putty和Xshell远程登录之密钥认证
本次实验主要使用目前使用最多的Putty和Xshell工具进行实验 关于SSH密钥认证原理,请参考链接:http://www.cnblogs.com/ImJerryChan/p/6661815.htm ...
随机推荐
- 动态装载外部JavaScript脚本文件
当我们请求一个URL地址时,浏览器会从远程服务器装载各种所需的资源,如JavaScript.CSS.图片等.而在加载JavaScript时,常常会发生下面这种情况: 也就是说,当浏览器碰到Script ...
- STL List::sort() 解析
看侯捷翻译那本<STL源码剖析>中list内置sort的算法,书中注释说是quick sort,看了半天没看明白, template <class T, class Alloc> ...
- Spark+Kafka的Direct方式将偏移量发送到Zookeeper实现(转)
原文链接:Spark+Kafka的Direct方式将偏移量发送到Zookeeper实现 Apache Spark 1.3.0引入了Direct API,利用Kafka的低层次API从Kafka集群中读 ...
- ListView 设置列对齐方式
<ListView.Resources> <Style TargetType="ListViewItem"> <Setter Property=&qu ...
- mybatis结果的组装(springboot)
文主要解答一个问题,即如果bean没有setter,而且属性不是public的,mybatis的自动组装是否可以赋值成功的问题. 查询调用过程 DefaultSqlSession.selectList ...
- 【nodejs】使用response输出中文但页面中文乱码的处置
两点要确认: 1.head里有<meta charset="utf-8"/> 2.js文件编码为utf-8格式. 第二点往往容易被忽略,所以出现乱码. 附上代码: 'u ...
- T-SQL 之 游标
游标是面向行的,它会使开发人员变懒,懒得去想用面向集合的查询方式实现某些功能. 在性能上,游标会占有更多的内存,减少可用的并发,占用带宽,锁定资源,当然还有更多的代码量. 用一个比喻来说明为什么游标会 ...
- Appium Python 二:理论概念理解
简介 Appium 是一个开源的自动化测试工具,支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合应用. “移动原生应用”是指那些用 iOS 或者 Android SDK 写的 ...
- [模式识别].(希腊)西奥多里蒂斯<第四版>笔记5之__特征选取
1,引言 有关模式识别的一个主要问题是维数灾难.我们将在第7章看到维数非常easy变得非常大. 减少维数的必要性有几方面的原因.计算复杂度是一个方面.还有一个有关分类器的泛化性能. 因此,本章的主要任 ...
- java多线程解决应用挂死的问题
这两天为了定位JBOSS老是挂死的问题,学习了一下JAVA多线程方面的知识,在此总结一下 1.在Java程序中,JVM负责线程的调度.线程调度是指按照特定的机制为多个线程分配CPU的使用权. 调度的模 ...