免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1209 | 回复: 0
打印 上一主题 下一主题

ssh-agent和keychain使用笔记 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-30 07:08 |只看该作者 |倒序浏览

操作环境:
FreeBSD 7.0 release
script : csh
假设密钥位置:  /root/.ssh/id_dsa
平常登陆的方式应该是如下,如有密钥密码则要输入:
# ssh -p ${port} -i /root/.ssh/id_dsa ${user}@${ipaddr}
个把主机还好,如是管理大量主机时用这种方式就繁琐了。所以通过ssh-agent或keychain方式来缓存密钥在管理上可提高效率。
1. 通过ssh-agent 和 ssh-add来建立密钥缓存
先启用ssh-agent守护进程, 导入相关环境变量
# ssh-agent
setenv SSH_AUTH_SOCK /tmp/ssh-6J4OQDvJO8/agent.74703;
setenv SSH_AGENT_PID 74704;
echo Agent pid 74704;
# setenv SSH_AUTH_SOCK /tmp/ssh-6J4OQDvJO8/agent.747043;
# setenv SSH_AGENT_PID 74704;
守护进程建立了,下面就可以加载密钥了, 如有密钥密码铡会提示输入。有多个密钥则一个个的加进缓存。
# ssh-add /root/.ssh/id_dsa
密钥加载完成。修改ssh_config的ForwardAgent,尝试登陆远程主机且不用再加上密钥和输入密钥密码。
# sed -i.bak -e 's/\(ForwardAgent \)no/\1yes/' /etc/ssh/ssh_config
# ssh -p ${port} ${user}@${ipaddr}
关闭ssh-agent进程:
# ssh-agent -k
2. 通过keychain简化ssh-agent和ssh-add步骤
keychain的安装
# cd /usr/ports/secure/keychain
# make install clean && rehash
通过keychain,可自动调用ssh-agent 守护进程和加载密钥
# keychain /root/.ssh/id_dsa
# source ~/.keychain/xxxxxx_csh   //xxxxx是你的主机名或ip地址.
两步完成。修改ssh_config的ForwardAgent后就可以登陆远程主机了。
3. 登陆shell时如ssh-agent进程还存在,则自动进行初始化
sh或bash在.bashrc下加入如下行:
if [ -n `ps aux | grep ssh-agent | grep -v grep | awk '{print $2}'` ]
then
    if [ -z ${SSH_AGENT_PID} ];then
        . ~/.keychain/`hostname`-sh
    fi
fi
csh或tcsh则在.cshrc下加入如下行:
if ( `ps aux | grep ssh-agent | grep -v grep | awk '{print $2}'` > 1 ) then
    if ( ! $?SSH_AGENT_PID ) then
        source ~/.keychain/`hostname`-csh
    endif
endif


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/12909/showart_2041319.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP