- 浏览: 252434 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (298)
- 工作感悟 (6)
- java基础 (23)
- 计算机硬件知识 (1)
- 计算机网络知识 (2)
- Struts (3)
- Srping (4)
- hibernate (0)
- ibatis (0)
- webservice (4)
- Thread (22)
- maven (5)
- ubuntu/linux/centos/redhat (46)
- SSO (1)
- ESB (0)
- 工作流 (0)
- oracle (15)
- 云计算 (1)
- hadoop (1)
- nosql (0)
- mysql (3)
- sqlserver (0)
- jquery (0)
- 分布式 (3)
- 集群 (0)
- 设计模式 (2)
- EJB (0)
- map (0)
- cache (5)
- Niginx+varnish+squid+Ats (14)
- Apache (0)
- 工作/职业规划 (0)
- Scala & Groovy (1)
- English (4)
- 数据结构/算法 (6)
- 开发工具 (5)
- 测试 (2)
- Exception (0)
- 定时器 (3)
- j2ee (2)
- 部署 (1)
- Openssl (1)
- 操作系统 (3)
- kvm (13)
- libvirt (5)
- PostgreSql (5)
- 虚拟化 (3)
- 概念理解 (1)
- virt-manager (1)
- RESTful (3)
- 其它 (4)
- ssh2 (14)
- windows (1)
- 房产 (2)
- svn (1)
- 手机 (1)
- ant (1)
- flume (2)
- sqoop (1)
- fastdfs (5)
- log4j (1)
- SPDY (1)
- mongodb (2)
- MQ (2)
- Mina (1)
- dubbo (4)
- PMP (1)
- Webshpere (2)
- jvm (1)
- Btrace (1)
- zookeeper (7)
- UML (1)
- spring cloud (6)
- spring boot (5)
- storm (0)
- 软件管理 (1)
- elasticsearch (1)
- 协议 (2)
- docker (1)
- 性能 (2)
- 安全 (1)
- 代码规范 (1)
- mqtt (1)
- lombok (1)
- 车联网 (1)
- kafka (1)
最新评论
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允许用户把密钥存储在内存中,这就是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
发表评论
-
通过expect,读取配置文件,批量ssh-add
2013-10-29 09:16 10371.配置文件(多台宿主机) id_dsa.txt id_dsa ... -
批量部署ssh认证
2013-10-28 16:10 855批量部署ssh认证 我想 ... -
ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机
2013-10-28 15:49 318使用下例中ssky-keygen和ssh-copy-id,仅需 ... -
ubuntu下添加各种类别的启动项
2013-10-25 10:55 552原文地址:http://www.cnblo ... -
2010-08-30 19:00 linux下添加自动启动项
2013-10-25 10:37 567首先写好脚本,如 mysql,把它放到 /etc/init.d ... -
ubuntu 添加开机自动运行脚本
2013-10-25 10:26 5911.编写shell脚本 gedit /etc/init.d/m ... -
Linux下利用expect实现自动交互
2013-10-25 10:01 537首先要安装tcl,expect 下面是Linux下s ... -
最新SSH自动登录方案(RSA)
2013-10-25 08:51 822一. 前言 直接使用ssh连接到服务器时,需要手动输入 ... -
CentOS通过Ssh连接缓慢的问题
2013-10-24 15:31 498之前安装系统使用了CentOS,发现安装之后ssh速度 ... -
解决 Agent admitted failure to sign using the key 问题 with ssh
2013-10-23 10:36 591配置ssh 之前要在本机上装上ssh,可以通过sudo ap ... -
Java SSH远程执行Linux Shell脚本实现(转)
2013-10-11 15:25 1036此程序需要ganymed-ssh2-build210.jar包 ... -
ubuntu 默认防火墙安装、启用、查看状态
2013-10-10 12:05 647ubuntu 9.10默认的是UFW防火墙,已经支持界面操作了 ... -
ssh2的两种java实现
2013-09-29 14:58 1256SSH2的两种java实现,jcraft和Ganymed,终于 ...
相关推荐
其实ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。 语法格式: ssh-agent [参数] 常用参数:...
Ruby 的SSH密钥认证 该项目旨在通过使用提供身份验证(签名和验证) ssh 密钥。 为什么? 我管理的大多数基础设施都混合了一些单点登录不是那么单点登录。 此外,我在 sshd 中禁用的第一件事总是密码验证并确保每个...
·基于代理的高级密钥管理、密钥转发、强制命令。 ·深入探讨了TCP及X11应用程序的转发(即隧道传输),进而讨论了存在防火墙与网络地址转换(NAT)机制时的情况。 ·SSH与Kerberos、PGP、PAM等其他安全产品的集成 ...
YubiKey-Guide, 使用YubiKey作为GPG和SSH的智能卡的指南 这是使用 ...还可以为SSH创建认证密钥,并与 gpg代理一起使用。像YubiKey这样存储的密钥比存储在磁盘上的密钥更难,而且方便日常使用。使用 YubiKey 4为 De
SecureCRT 还可以通过公共密钥代理来支持转发,当使用同一个X.509证书连接到另一台机器时,可以自动进行再认证。对SSH代理功能性的激活器支持:如果激活器处 于运行状态,即使SecureCRT已关闭,也可以自动认证。多...
CRT安装包及注册机,亲测可用. securecrt特性 1、适用于Mac和Linux 选项卡组使用选项卡组在更短的时间内完成更多功能。在标签中组织的会话之间轻松切换。或者创建临时选项卡组,以便...X.509v3密钥可以添加到SSH代理。
PuTTY 是一个跨平台的远程登录工具,包含了一组程序,包括: ...• Pageant (PuTTY、PSCP、Plink 的 SSH 认证代理,用这个可以不用每次都输入口令了) • PuTTYgen (用来生成 RSA 和 DSA 密钥的工具).
- 支持 SMTP、LDAP 和反向代理的用户认证 - 支持反向代理子路径 - 支持用户、组织和仓库管理系统 - 支持添加和删除仓库协作者 - 支持仓库和组织级别 Web 钩子(包括 Slack 和 Discord 集成) - 支持仓库 Git 钩子和...
支援SSL和SSH保证数据传输的安全性,目前就算在国际上也没有几款软件能达到这样的高度。 主要功能列表 内建简易的但功能不弱的文件管理器,帮助用户更好地分类和轻松地组织下载文件。 简单的多用户管理,...
指定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...
管理帐户可以通过 SSH 以 root 身份登录,使用 SSH 代理密钥转发。 简单的认证。 服务器的所有成员在系统中都有一个帐户,尽管默认情况下没有 SSH 访问权限。 身份验证由 PAM 完成。 它支持任何支持本地或 SASL ...
压缩包里只有注册机,便于已安装官方原版程序的同学使用。...新版SecureFX采用了一个密码库,符合FIPS 140-2加密要求,改进了X.509证书的认证能力,可以轻松开启多个会话,并提高了SSH代理的功能。
集中管理SSH密钥,Linux帐户和云服务器的密码。 轻巧的替代品,可以替代OpenLDAP和Active Directory进行开发,也可以替代家庭实验室。 将用户目录存储在本地文件,S3或现有LDAP服务器的代理中。 使用它可以集中...
一种上传软件 在家还是在办公室,行业领先的一种上传软件软件可以智能地和安全地移动你的重要文件在多个地点在广域网或...使用标签在每个面板之间切换活动会话、站点管理器和本地驱动器标签和之间的队列窗口和日志窗口。
ftp4j提供多种方式连接到远程FTP服务器包括:通过 TCP/IP直接连接,通过FTP代理、HTTP代理、SOCKS4/4a代理和SOCKS5代理连接,通过SSL安全连接。 Java的命令行进度条 JCmdLineProgess JCmdLineProgess 是一个 Java ...
支持活动时间线支持SSH以及HTTP/HTTPS协议支持SMTP、LDAP和反向代理的用户认证支持反向代理子路径支持用户、组织和仓库管理系统支持添加和删除仓库协作者支持仓库和组织级别Web钩子(包括Slack集成)支持仓库Git钩子...
Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、...