OpenSSH的RSA/DSA密钥认证系统

OpenSSH的RSA/DSA密钥认证系统,它可以代替OpenSSH缺省使用的标准安全密码认证系统。

OpenSSH的RSA和DSA认证协议的基础是一对专门生成的密钥,分别叫做私用密钥和公用密钥。 使用这些基于密钥的认证系统的优势在于:在许多情况下,有可能不必手工输入密码就能建立起安全的连接。尽管基于密钥的认证协议相当安全,但是当用户并不完全了解这些简化操作对安全性的影响,为了方便而使用某些简化操作时,就会出现问题。

公用密钥用于对消息进行加密,只有拥有私用密钥的人才能对该消息进行解密。公用密钥只能用于加密,而私用密钥只能用于对由匹配的公用密钥编码的消息进行解密。RSA(和 DSA)认证协议利用密钥对的这些特殊性质进行安全认证,并且不需要在网上传输任何保密的信息。ssh 协议的版本 1 使用的是 RSA 密钥,而 DSA 密钥却用于协议级 2,这是 ssh 协议的最新版本

ssh-keygen提示输入密码短语(输入的不是远程服务器上系统账户的密码),输入密码短语后,ssh-keygen用这个密码短语加密了私用密钥,以使私用密钥对于那些不知道这个密码短语的人将变得毫无用处。

创建公钥-私钥对

[[email protected] ~]# hostname
rhce7.example.com
[[email protected] ~]# 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:
76:fb:8f:1c:4f:80:81:ec:95:80:aa:87:50:87:fe:0b [email protected]
The key‘s randomart image is:
+--[ DSA 1024]----+
|   .   ..        |
|  o . .. o .     |
| o . .  o +      |
|. . .  . . o     |
| . +    S o .    |
|  E o  . . . .   |
|   o .    . . .  |
|    .      o =   |
|            +.o  |
+-----------------+

将公钥复制到远程系统上的正确位置

[[email protected] ~]# ssh-copy-id [email protected]
The authenticity of host ‘192.168.56.123 (192.168.56.123)‘ can‘t be established.
RSA key fingerprint is da:fe:d3:23:40:eb:d1:01:60:eb:2b:07:8a:2f:e8:73.
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: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]‘s password: abcd1234

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh ‘[email protected]‘"
and check to make sure that only the key(s) you wanted were added.

通过密钥登录远程服务器

在这过程中,具体包含以下步骤:

1.本地服务器想使用DSA认证协议登录远程服务器
2.远程服务器的sshd会生成一个随机数,并用本地服务器拷贝过来的公钥进行加密后发送给本地服务器
3.本地服务器使用本地私钥对远程服务器发送来的消息进行解密,解密后再把信息发送给远程服务器
4.远程服务器的sshd再次确认信息,信息验证正确后,通过本地服务器的连接登录请求

[[email protected] ~]# ssh 192.168.56.123
Enter passphrase for key ‘/root/.ssh/id_dsa‘: root1
Last login: Tue Jul 14 09:18:57 2015 from 192.168.56.1
[[email protected] ~]# hostname
mytest.jy.com
时间: 2024-08-05 18:41:28

OpenSSH的RSA/DSA密钥认证系统的相关文章

RSA/DSA 密钥的工作原理

下面从整体上粗略的介绍了 RSA/DSA 密钥的工作原理.让我们从一种假想的情形开始,假定我们想用 RSA 认证允许一台本地的 Linux 工作站(称作 localbox)打开 remotebox 上的一个远程 shell,remotebox 是我们的 ISP 的一台机器.此刻,当我们试图用 ssh 客户程序连接到remotebox 时,我们会得到如下提示: % ssh [email protected] [email protected]'s password: 此处我们看到的是 ssh 处理

OpenSSH 密钥管理:RSA/DSA 认证(转载)

我们中有许多人把优秀的 OpenSSH用作古老的 telnet 和 rsh 命令的替代品,OpenSSH 不仅是安全的而且是加密的. OpenSSH 更加吸引人的特性之一是它能够使用基于一对互补的数字式密钥的 RSA 和 DSA 认证协议来认证用户.RSA 和 DSA 认证承诺 不必提供密码就能够同远程系统建立连接,这是它的主要魅力之一.虽然这非常吸引人,但是 OpenSSH 的新用户们常常以一种快速却不完善的方式配置 RSA/DSA,结果虽然实现了无密码登录,却也在此过程中开了一个很大的安全漏

理解OpenSSH的RSA和DSA认证过程

OpenSSH 的 RSA 和 DSA 认证协议的基础是一对专门生成的密钥,分别叫做 专用密钥和 公用密钥.使用这些基于密钥的认证系统的优势在于:在许多情况下,有可能不必手工输入密码就能建立起安全的连接. 尽管基于密钥的认证协议相当安全,但是当用户并不完全了解这些简化操作对安全性的影响,为了方便而使用某些简化操作时,就会出现问题.本文中,我们将详细讨论如何正确使用 RSA 和 DSA 认证协议,使我们不会冒任何不必要的安全性风险.在我的下一篇文章里,我将向您展示如何使用 ssh-agent 隐藏

使用XShell工具密钥认证登录Linux系统

如果你是一名Linux运维,那么Linux服务器的系统安全问题,可能是你要考虑的,而系统登录方式有两种,密码和密钥.哪一种更加安全呢? 无疑是后者! 这里我为大家分享用Xshell利器使用密钥的方式登录Linux服务器! 关于Xshell,它是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议.与之类似的工具还有PUTTY.SecureCRT等. 1.点击Xshell菜单栏的工具,选择新建用户密钥生成向导,进行密钥对生成操作

ssh   sshd   scp   基于密钥认证登陆 双机互信

telnet :远程登陆 TCP/23 远程认证是明文的 :数据传输是明文的:不实用 ssh:Secure SHell TCP/22    协议 v1 v2  v1基本不使用的 实现了将认证过程加密 Openssh:是ssh的开源版 ssh不仅是一个软件,也是一种协议 ssh加密认证的机制 基于口令:默认为口令 基于密钥:事先在服务器端的用户里放入客户端的公钥,然后链接过来的时候对暗号 netstat -tnl  查看服务器端打开了等待别人访问的服务 LISTEN监听 ssh 和sshd的配置文

[转] SSH 密钥认证机制

使用 RSA 密钥对进行 SSH 登录验证 使用 RSA 密钥对验证 SSH 的优点是 1) 不用打密码 2) 比密码验证更安全:缺点是 1) 第一次配置的时候有点麻烦 2) 私钥需要小心保存.Anyway 用密钥验证比密码验证还是方便不少的.推荐所有用户使用密钥认证. 目录 生成密钥对 上传密钥 ~/.ssh 相关文件权限 Over~ 附:公钥加密原理 进一步阅读 1. 生成密钥对 OpenSSH 提供了ssh-keygen用于生成密钥对,不加任何参数调用即可: % ssh-keygen Ge

ssh密钥认证

?br/>?基于密钥的认证实现基于密钥的认证,在登录过程中不需要输入密码,客户端和ssh服务端以密钥对进行认证,不在网络中传输用户名和密码信息,其公钥存储于ssh服务端,私钥当然是存储在客户端本地的.认证通过后才能登录成功.基于密钥的认证在我们常用的终端软件上设置好以后,我们在连接Linux主机时可自动登录,而且比常规ssh口令登录更加安全,而且服务器之间ssh登录也可以启用这种方式省去了输入口令的过程,而且在修改账号密码后也能继续使用原来的密钥进行认证.??实现基于密钥的认证??服务器之间实现

Linux之sshkey密钥认证实战

在实际的生产环境中,经常会用到sshkey密钥认证实行数据分发数据等操作,还可以批量操作内网服务器,实行免密认证进行推送分发数据. 1.环境查看 分发服务器 节点服务器 2.服务器添加系统账号 3.生成密钥对 [[email protected] ~]# su - fenfa [[email protected] ~]$ whoami fenfa [[email protected] ~]$ ssh-keygen -t dsa Generating public/private dsa key

ssh-key免密钥认证实战

ssh-key免密钥认证 环境: server 服务器192.168.1.178/24 client-b服务器192.168.1.1.179/24 client-c服务器192.168.1.1.180/24 这三台机器都禁止root的远程登录,并且把ssh的默认访问端口22改成5201端口 这三台机器都创建了crazy普通用户,密码123456 需求:实现server端通过SSH通道可以免密码访问client-b主机和client-c主机 拓扑图: 实战操作: 在server服务器使用crazy