`
fly.net.cn
  • 浏览: 183518 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ssh密钥管理和认证代理

    博客分类:
  • ssh
阅读更多
ssh密钥管理和认证代理
ssh允许用户把密钥存储在内存中,这就是ssh认证代理。认证代理为用户提供了使用RSA密钥而不必随时键入口令字的能力。这对于不必在所有登录、X会话或运行脚本时都要键入口令字提供便利是很有效的。
(一)ssh认证登录是ssh-agent。执行这个命令可以使认证代理运行,但是它没有在内存中增加任何密钥。密钥是由ssh-add命令增加的。
[root@localhost ~]# ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-CmeOr30022/agent.30022; export SSH_AUTH_SOCK;
SSH_AGENT_PID=30023; export SSH_AGENT_PID;
echo Agent pid 30023;
[root@localhost ~]# ps aux|grep ssh
root      2019  0.0  0.3   4388  1728 ?        Ss   Jun01   0:01 /usr/sbin/sshd
root     15483  0.0  0.4   7412  2324 ?        Ss   Jun16   0:20 sshd: root@notty
root     25387  0.0  0.5   7380  2628 ?        Ss   Jun16   0:00 sshd: root@pts/0
root     30023  0.0  0.2   3868  1128 ?        Ss   01:05   0:00 ssh-agent
root     30053  0.0  0.1   3756   700 pts/0    R+   01:06   0:00 grep ssh
这样就启动了ssh认证代理。
认证代理产生UNIX套接字,该套接字被存放在/tmp/ssh-username/agent-socket-processID
中。套接字名定位在环境变量SSH_AUTH_SOCK中。Secure Shell为维护认证代理安全性所做
的一件事是使它只能被用户自身访问。然而,超级用户可以访问它,并且如果同一个用户启
动另外的ssh-agent进程,这可能产生问题。
注意记住,运行ssh-agent将不会把你的密钥载入内存。你必须用ssh-add命令自己把密
钥载入内存。

(二)接下来我们先生成登录到远程机器的密钥对
[root@localhost ~]# ssh-keygen -t dsa -f ~/.ssh/id_dsa10.4.5.29
Generating public/private dsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa10.4.5.29.
Your public key has been saved in /root/.ssh/id_dsa10.4.5.29.pub.
The key fingerprint is:
ed:b1:b1:5b:d9:6e:8a:01:71:5c:0b:ec:b9:89:51:f1 root@localhost.localdomain
[root@localhost ~]#
-t   指定生成的密钥对类型
-f   指定生成的密钥文件的位置和名称,本例中我想把这个密钥对只用于10.4.5.29这台计算机,所以取了id_dsa10.4.5.29这个名字。
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
这两行要求我们输入密钥口令字,要输入两次。
这个命令执行成功后,会在~/.ssh/目录下生成两个文件id_dsa10.4.5.29和id_dsa10.4.5.29.pub两个文件。
然后,我们把id_dsa10.4.5.29.pub这个文件先传输到10.4.5.29这台计算机上,当然这时是要我们输入用户密码的。之后登录10.4.5.29计算机,
[root@server root]# cat id_dsa10.4.5.29.pub >> ~/.ssh/authorized_keys
现在我们重新登录10.4.5.29
[root@localhost ~]# ssh -i ~/.ssh/id_dsa10.4.5.29 10.4.5.29
Enter passphrase for key '/root/.ssh/id_dsa10.4.5.29':
Last login: Sat Jun 17 01:06:08 2006 from 10.4.5.161
[root@server root]#
-i   指定我们要使用的私钥文件。
然后我们要输入密钥口令字,才可登录到10.4.5.29这台远程计算机。这样是很不方便的。
(三)把密钥加入ssh-agent
当你已经用代理运行时,需要把R S A密钥加到代理中。要把密钥加到ssh-agent,你需要
运行ssh-add。它把私有RSA密钥加到ssh-agent中,并且允许通过Secure Shell连接转发密钥。
这意味着在加入密钥和ssh-agent运行后,你只需要键入一次口令字来使它运行。
要加入你的身份密钥,你需要做的只是运行ssh-add :
[root@localhost ~]# ssh-add ~/.ssh/id_dsa10.4.5.29
Enter passphrase for /root/.ssh/id_dsa10.4.5.29:
Identity added: /root/.ssh/id_dsa10.4.5.29 (/root/.ssh/id_dsa10.4.5.29)
[root@localhost ~]#
把id_dsa10.4.5.29这个密钥加入到ssh-agent代理中,我们在这里还需要输入一次密钥口令字。
这时我们再次登录10.4.5.29远程计算机:
[root@localhost ~]# ssh -i ~/.ssh/id_dsa10.4.5.29 10.4.5.29
Last login: Sat Jun 17 01:35:00 2006 from 10.4.5.161
[root@server root]#
这次我们就不需要再输入密钥口令字了,可以自由的登录远程计算机。
(四)相关命令
>>如果你要列出所有存储在认证代理中的当前身份,则使用- I选项:
[root@localhost ~]# ssh-add -l
1024 81:71:25:91:30:5b:f3:7a:ba:f0:a9:56:2d:51:fd:e4 /root/.ssh/id_dsa10.4.5.29 (DSA)
[root@localhost ~]#
>>你可以把多重身份存储在s s h - a g e n t中。你也可以使用s s h - a d d把身份从Secure Shell代理中移去。要移去一个身份,使用后面跟着身份文件名的- d选项:
[root@localhost ~]# ssh-add -d /root/.ssh/id_dsa10.4.5.29
Identity removed: /root/.ssh/id_dsa10.4.5.29 (/root/.ssh/id_dsa10.4.5.29.pub)
[root@localhost ~]# ssh-add -l
The agent has no identities.
>>要移去所有的身份,使用- D选项:
[root@localhost ~]# ssh-add -D
这意味着你不必逐一登录到每台远程主机上以移去身份—你可以在本地完成该工作。
>>你可以很容易地移去ssh-agent。你也可以在从X会话退出时杀死ssh-agent进程或通过杀死SSH_AGENT_PID来终止ssh-agent。
[root@localhost ~]#kill -9 $SSH_AGENT_PID

[root@localhost ~]#ssh-agent -k
 
分享到:
评论

相关推荐

    ssh-agent命令 ssh密钥管理器

    其实ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。 语法格式: ssh-agent [参数] 常用参数:...

    ruby-sshkeyauth:使用 SSH 密钥对数据进行签名和验证(在 ssh 服务器之外)

    Ruby 的SSH密钥认证 该项目旨在通过使用提供身份验证(签名和验证) ssh 密钥。 为什么? 我管理的大多数基础设施都混合了一些单点登录不是那么单点登录。 此外,我在 sshd 中禁用的第一件事总是密码验证并确保每个...

    SSH,The Secure Shell:The Definitive Guide(2nd)

    ·基于代理的高级密钥管理、密钥转发、强制命令。 ·深入探讨了TCP及X11应用程序的转发(即隧道传输),进而讨论了存在防火墙与网络地址转换(NAT)机制时的情况。 ·SSH与Kerberos、PGP、PAM等其他安全产品的集成 ...

    YubiKey-Guide, 使用YubiKey作为GPG和SSH的智能卡的指南.zip

    YubiKey-Guide, 使用YubiKey作为GPG和SSH的智能卡的指南 这是使用 ...还可以为SSH创建认证密钥,并与 gpg代理一起使用。像YubiKey这样存储的密钥比存储在磁盘上的密钥更难,而且方便日常使用。使用 YubiKey 4为 De

    SecureCRT&SecureFX; V8.1

     SecureCRT 还可以通过公共密钥代理来支持转发,当使用同一个X.509证书连接到另一台机器时,可以自动进行再认证。对SSH代理功能性的激活器支持:如果激活器处 于运行状态,即使SecureCRT已关闭,也可以自动认证。多...

    CRT8.3+FX8.3及注册机

    CRT安装包及注册机,亲测可用. securecrt特性 1、适用于Mac和Linux 选项卡组使用选项卡组在更短的时间内完成更多功能。在标签中组织的会话之间轻松切换。或者创建临时选项卡组,以便...X.509v3密钥可以添加到SSH代理。

    putty(中文以及原版) 以及使用教程

    PuTTY 是一个跨平台的远程登录工具,包含了一组程序,包括: ...• Pageant (PuTTY、PSCP、Plink 的 SSH 认证代理,用这个可以不用每次都输入口令了) • PuTTYgen (用来生成 RSA 和 DSA 密钥的工具).

    Gogs极易搭建的自助 Git 服务器代码.rar

    - 支持 SMTP、LDAP 和反向代理的用户认证 - 支持反向代理子路径 - 支持用户、组织和仓库管理系统 - 支持添加和删除仓库协作者 - 支持仓库和组织级别 Web 钩子(包括 Slack 和 Discord 集成) - 支持仓库 Git 钩子和...

    NetTransport 网络传送带

    支援SSL和SSH保证数据传输的安全性,目前就算在国际上也没有几款软件能达到这样的高度。 主要功能列表 内建简易的但功能不弱的文件管理器,帮助用户更好地分类和轻松地组织下载文件。 简单的多用户管理,...

    CISCO交换机配置AAA、802.1X以及VACL

    指定radius服务器和密钥 switch(config)#radius-server host ip_add key string 2、在port上起用802.1x Switch# configure terminal Switch(config)# interface fastethernet0/1 Switch(config-if)# switchport...

    elaine:配置盗版服务器

    管理帐户可以通过 SSH 以 root 身份登录,使用 SSH 代理密钥转发。 简单的认证。 服务器的所有成员在系统中都有一个帐户,尽管默认情况下没有 SSH 访问权限。 身份验证由 PAM 完成。 它支持任何支持本地或 SASL ...

    SecureCRT&SecureFX 64位 7.2.3 注册机

    压缩包里只有注册机,便于已安装官方原版程序的同学使用。...新版SecureFX采用了一个密码库,符合FIPS 140-2加密要求,改进了X.509证书的认证能力,可以轻松开启多个会话,并提高了SSH代理的功能。

    glauth:用于开发,家庭使用或CI的轻量级LDAP服务器

    集中管理SSH密钥,Linux帐户和云服务器的密码。 轻巧的替代品,可以替代OpenLDAP和Active Directory进行开发,也可以替代家庭实验室。 将用户目录存储在本地文件,S3或现有LDAP服务器的代理中。 使用它可以集中...

    CuteFTP9简易汉化版

    一种上传软件 在家还是在办公室,行业领先的一种上传软件软件可以智能地和安全地移动你的重要文件在多个地点在广域网或...使用标签在每个面板之间切换活动会话、站点管理器和本地驱动器标签和之间的队列窗口和日志窗口。

    java开源包4

    ftp4j提供多种方式连接到远程FTP服务器包括:通过 TCP/IP直接连接,通过FTP代理、HTTP代理、SOCKS4/4a代理和SOCKS5代理连接,通过SSL安全连接。 Java的命令行进度条 JCmdLineProgess JCmdLineProgess 是一个 Java ...

    Gogs轻量级git服务-其他

    支持活动时间线支持SSH以及HTTP/HTTPS协议支持SMTP、LDAP和反向代理的用户认证支持反向代理子路径支持用户、组织和仓库管理系统支持添加和删除仓库协作者支持仓库和组织级别Web钩子(包括Slack集成)支持仓库Git钩子...

    JAVA上百实例源码以及开源项目

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    JAVA上百实例源码以及开源项目源代码

    Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、...

Global site tag (gtag.js) - Google Analytics