ssh-agent是一种控制用来保存公钥身份验证所使用的私钥的程序。ssh-agent在X会话或登录会话之初启动,所有其他窗口或程序则以客户端程序的身份启动并加入到ssh-agent程序中。通过使用环境变量,可定位代理并在登录到其他使用ssh机器上时使用代理自动进行身份验证。
其实ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。通过使用ssh-agent就可以很方便的在不的主机间进行漫游了,假如我们手头有三台server:host1、host2、host3且每台server上到保存了本机(supersun.biz)的公钥,因此我可以通过公钥认证登录到每台主机:
[root@supersun.biz ~]#ssh host1
Last login: Thu Oct 18 13:56:08 2007 from supersun
[root@host1 root]#
[root@supersun.biz ~]#ssh host2
Last login: Fri Oct 12 11:14:44 2007 from supersun
[root@host2 root]#
[root@supersun.biz ~]#ssh host3
Last login: Sat Sep 29 10:21:32 2007 from supersun
[root@host3 root]#
但是这三台server之间并没有并没有保存彼此的公钥,而且我也不可能将自己的私钥存放到server上(不安全),因此彼此之间没有公钥进 行认证(可以密码认证,但是这样慢,经常输密码,烦且密码太多容易忘)。但是如果我们启用ssh-agent,问题就可以迎刃而解了。
启用ssh-agent:
[root@supersun.biz ~]#eval `ssh-agent `
Agent pid 3526
添加私钥:
[root@supersun.biz ~]#ssh-add
Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)
编缉/etc/ssh/ssh_config文件:
ForwardAgent yes
让ssh-agent能转发,这样就可以这样登陆了:supersun.biz---->host1---->host2,到此请注意,如果host1上没有设定转发的话就登不了host3了,设定了转发后可以进一步跳到rs3上了。
[root@supersun.biz ~]#ssh host1
Last login: Thu Oct 18 16:21:29 2007 from supersun
[root@host1 root]# vi /etc/ssh/ssh_config
[root@host1 root]# ssh host2
Last login: Thu Oct 18 16:20:28 2007 from supersun
[root@host2 root]# ssh host3
Last login: Thu Oct 18 16:10:39 2007 from supersun
[root@host3 root]#
到这里基本上已经大功告成了,还有一个小问题那就是总不能每次都手动运行ssh-agent吧!最省时的方法就是将它写到profile中去:
为了不把profile搞乱,我在在/etc/profile.d下建一个ssh-agent.sh文件:
[root@supersun.biz ~]#cat /etc/profile.d/ssh-agent.sh
#!/bin/sh
if [ -f ~/.agent.env ]; then
. ~/.agent.env >/dev/null
if ! kill -0 $SSH_AGENT_PID >/dev/null 2>&1; then
echo "Stale agent file found. Spawning new agent..."
eval `ssh-agent |tee ~/.agent.env`
ssh-add
fi
else
echo "Starting ssh-agent..."
eval `ssh-agent |tee ~/.agent.env`
ssh-add
fi
这样就不会生成太多的ssh-agent程序了,而且支持GUI环境。当我打开一个终端的话:
Stale agent file found. Spawning new agent...
Agent pid 2543
Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)
[root@supersun.biz ~]#
添加了新的密钥。
- 浏览: 312971 次
文章分类
- 全部博客 (308)
- Apple (1)
- MAC (6)
- iPhone (1)
- iOS (1)
- Adobe (3)
- Microsoft (23)
- Windows (12)
- WAP (2)
- CMPP (6)
- Eclipse (5)
- .NET (13)
- Router (3)
- ADO.NET (2)
- C# (11)
- WPF (3)
- SqlServer (4)
- Facebook (2)
- JDBC (1)
- Visual Studio (10)
- ActiveMQ (9)
- Java (112)
- Memcached (2)
- NoSQL (7)
- Hadoop (9)
- GlassFish (2)
- Linux (98)
- CentOS (58)
- Spring (10)
- Oracle (17)
- JBOSS (12)
- Webservice (4)
- EJB (7)
- DFS (1)
- Hibernate (9)
- Redis (3)
- Tomcat (5)
- Python (8)
- FastDFS (6)
- Nginx (6)
- RabbitMQ (0)
- Erlang (0)
- Lucene (8)
- Solr (7)
- MySQL (1)
- JavaScript (0)
最新评论
-
zhangy888:
你好,我正好也遇到了这个问题,按照您的设置有如下几个问题,请帮 ...
CXF SOAP 1.2 SOAP 1.1 问题 -
u011493586:
这个SUBMIT写的还不错,只是有的地方没看懂
CMPP发送超长短信息(JAVA版) -
u011493586:
...
CMPP发送超长短信息(JAVA版)
发表评论
-
LNAMP架构中后端Apache获取用户真实IP地址的2种方法
2015-06-29 11:47 539一、Nginx反向代理配置: 1、虚拟主机配置 .代码 ... -
CentOS上安装Zabbix
2014-10-11 12:50 699zabbix是一个基于WEB界面的提供分布式系统监视 ... -
libbz2.a,libz.so导致tokyocabinet make失败问题解决方法
2014-10-09 18:17 1463近日心血来潮,决定装 ... -
安装 Bzip2-1.0.2
2014-10-09 18:16 884预计所需编译时间: 0.1 SBU 预 ... -
协议分析之TCP旁路阻断
2014-09-23 17:38 1821一、阻断未建立起来的连接 我们知道TCP的建立 ... -
Inmanhust的日记
2014-09-04 09:18 679列式数据库之infobright ... -
开源日志系统比较
2014-09-03 21:11 473作者:Dong | 新浪微博:西成懂 | 可以转载, 但必须 ... -
在CentOS上安装和配置OpenStack Nova
2014-08-22 15:53 671因为 Python 的版本问题,在 CentOS 5.6 上 ... -
tokyotyrant-java客户端
2014-07-25 09:48 749目录: 概述 演示 [一]、概述 java实现了 ... -
高性能NoSQL数据库Redis结合谷歌开源tcmalloc库的安装笔记
2014-06-30 17:03 582TCMalloc(Thread-Caching Malloc ... -
Tornado多进程方式log切分错误的解决方案
2014-06-13 10:09 1246在生产环境中,log一般按照时间进行切分,如在23:59:5 ... -
15个实用的Linux find命令示例
2014-05-23 14:22 643原文出处: thegeekstuff 译文出处: osc ... -
Linux crontab 命令格式与详细例子
2014-05-23 14:18 489基本格式 : * * * * * command分 ... -
linux中强大且常用命令:find、grep
2014-05-23 14:14 597在linux下面工作,有些命令能够大大提高效率。本文就向大家 ... -
Find命令搭配atime/ctime/mtime时的日期写法
2014-05-23 14:02 512标签:find atime mtime ctim ... -
Linux下修改系统日期与时间的方法
2014-05-19 16:21 409偶刚才在一台Linux上编译新内核时,出现提示系统时间不正确 ... -
Boost Installation
2014-05-16 18:01 596To install Boost.Build from an ... -
Shell编程--第2章 使用find和xargs
2014-05-16 11:19 586使用find和xargs有时可 ... -
利用Nginx http_image_filter_module模块来裁剪过大的图片
2014-05-13 12:23 764http_image_filter_module是ngin ... -
Varnish 详解
2014-05-07 13:21 794标签:Varnish 缓存服务 ...
相关推荐
**SSH-Agent 在 Emacs 中的使用:ssh-agency** 在IT领域,特别是在远程服务器管理与开发环境中,SSH(Secure Shell)是一种广泛使用的加密网络协议,它允许用户安全地执行命令、传输数据以及管理远程主机。SSH-...
wsl-ssh-agent 与WSL的Windows ssh-agent.exe服务进行接口连接的助手,替代ssh-agent-wsl。 Windows 10具有非常方便的ssh-agent服务(支持持久性和Windows安全性)。 不幸的是,无法从WSL访问它。 该项目旨在通过...
SSH代理助手在Windows上使用CMD,PowerShell等中的SSH... ssh-agent-helper.exe :不带任何参数调用程序将导致运行ssh-agent并将SSH_AUTH_SOCK和SSH_AGENT_PID设置为当前用户的环境变量。 这将允许ssh-add , ssh或使
node-ssh-agent是绑定到“纯” node.js的SSH代理协议的客户端。 目前,支持的操作是“列表键”和“签名数据”(在SSH中,这是requestIdentities和sign 。 用法 var SSHAgentClient = require('ssh-agent'); var ...
要将此映像与,您需要使用环境变量JENKINS_AGENT_SSH_PUBKEY而不是作为启动参数来传递公共SSH密钥。 在“ Docker模板”的“环境”字段(高级部分)中,只需添加: JENKINS_AGENT_SSH_PUBKEY= 不要在公钥周围加上...
ssh-agent GitHub操作这个动作启动ssh-agent , 导出SSH_AUTH_SOCK环境变量, 将一个或多个私有SSH密钥加载到代理中,然后为GitHub.com配置known_hosts 。 它应该可以在所有GitHub Actions虚拟环境中使用,包括基于...
ssh-agent-wrapper-win 从 Windows 命令行运行的 ssh-agent 的简单包装器包装器启动 ssh-agent,设置所需的环境变量并将私有身份添加到代理使用建议将文件的快捷方式添加到 Windows 启动文件夹假设对于第一个版本,...
使用节点核心 var http = require ( 'http' )var agent = require ( 'http-ssh-agent' )// per default the agent will authenticate using ~/.ssh/id_rsa as your private keyvar ssh = agent ( 'username@example....
在提供的文件名"use-ssh-agent-main"中,"main"通常指的是主要的或者入口文件,这可能是GitHub Action的具体实现代码,其中包含了启动SSH代理的逻辑。如果你需要查看或修改这个Action的行为,你可以查阅这个文件,...
go-ssh-agent-locker go-ssh-agent-locker 是一个简单的应用程序,只要钥匙串被锁定,它就会杀死 ssh-agent安装 go get github.com/MDrollette/go-ssh-agent-lockercp $GOPATH/bin/go-ssh-agent-locker /usr/local/...
ssh-agent命令是一种控制用来保存公钥身份验证所使用的私钥的程序。ssh-agent在X会话或登录会话之初启动,所有其他窗口或程序则以客户端程序的身份启动并加入到ssh-agent程序中。通过使用环境变量,可定位代理并在...
概要 该代理程序替代了旧的ssh代理程序。 该程序包包括在命令行上使用的“服务器”和...listening on path /tmp/sshagent.sock % node-ssh-list [] % node-ssh-add Enter pass phrase for /Users/user/.ssh/id_rsa
iam-ssh-agent旨在用于不太受信任的连续集成环境中,在该环境中,您想使用ssh密钥来克隆源代码控制存储库而无需提供原始密钥材料。 iam-ssh-agent分为两个部分:一个二进制文件,它通过ssh-agent协议绑定unix域套...
yubikey-agent是YubiKeys的无缝ssh-agent。 便于使用。一个命令的设置,一个环境变量,它仅在后台运行。 坚不可摧。允许拔出,Hibernate和挂起。无需重启。 兼容的。提供可与所有服务和服务器一起使用的公钥。 安全...
在Secure Shell扩展中创建新连接时,将--ssh-agent=eechpbnaifiimgajnomdipfaamobdfha添加到“ SSH中继服务器选项”字段中,以指示它应使用SSH代理作为密钥。 学分 部分代码和方法很大程度上基于 Chrome扩展。 特别...
ssh-add命令是把专用密钥添加到ssh-agent的高速缓存中。该命令位置在/usr/bin/ssh-add。 语法格式:ssh-add [参数] 常用参数: -D 删除ssh-agent中的所有密钥 -d 从ssh-agent中的删除密钥 -l 显示ssh-agent中...
ssh-agent-relay-在WSL2中使用Windows SSH代理该项目为SSH代理设置了中继,以便WSL安装将使用Windows内置的SSH代理。 您是否知道Windows内置了SSH代理? 真是个世界!启用Windows SSH代理(仅一次) 通过提升的...
yubikey-agent是YubiKeys的无缝ssh-agent。 yubikey-agent yubikey-agent是YubiKeys的无缝ssh-agent。 易于使用。 一个命令的设置,一个环境变量,它仅在后台运行。 坚不可摧。 允许拔出,Hibernate和挂起。 无需...
官方离线安装包,测试可用。请使用rpm -ivh [rpm完整包名] 进行安装
[许可证:麻省理工学院]( stegmannb / ansible-role-ssh-agent)]( stegmannb / ansible-role-ssh- agent / blob / master / LICENSE)![持续集成]( stegmannb / ansible-role-ssh-agent /workflows/Continuous ...