免费注册 查看新帖 |

Chinaunix

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

[原]无需口令的使用ssh:keychain [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-07 13:08 |只看该作者 |倒序浏览
忽然看到有关无口令使用ssh的帖子,在论坛里按主题搜索了一把,居然没有找到关于keychain的介绍。
正好昨天刚帮一个用户设置了keychain,就写一篇简单的介绍,争取能算个原创。 8-)

1.什么是keychain ?
简单说,keychain就是一个脚本,可以自动的帮你找到你上回登陆时候启动的ssh-agent进程,从而可以继续使用已经存在该agent里的key,去登陆其他的机器。

多说一句ssh-agent就是存你passphrase的后台进程。
如果你使用有passphrase的key,自然就不会用到ssh-agent,也就不会用到keychain了。

如果你想要深入了解keychain的工作原理,你可以找找ssh-agent的文档和keychain的文档看看,如果你只想快速的达到无需口令的使用ssh,那么就直接装上keychain,用就是了。
keychain的主页:
http://www.gentoo.org/proj/en/keychain/


2.怎样安装并配置keychain ?
2.1
http://dev.gentoo.org/~agriffis/keychain/
下载最新的keychain-2.6.1.tar.bz2
解出keychain
只需要keychain.

  1. rzhang@beedal01-/disk1/rzhang/bin> tar tvf ../keychain-2.6.1.tar
  2. drwxr-xr-x root/root         0 2005-10-11 03:40:23 keychain-2.6.1/
  3. -rw-r--r-- root/root     12995 2005-10-11 03:40:23 keychain-2.6.1/keychain.1
  4. -rw-r--r-- root/root     17227 2005-10-11 03:40:23 keychain-2.6.1/ChangeLog
  5. -rw-r--r-- root/root       787 2005-10-11 03:40:23 keychain-2.6.1/README
  6. -rwxr-xr-x root/root     50897 2005-10-11 03:40:23 keychain-2.6.1/keychain
  7. -rw-r--r-- root/root      1240 2005-10-11 03:40:23 keychain-2.6.1/keychain.spec
  8. -rw-r--r-- root/root     18009 2005-10-11 03:40:23 keychain-2.6.1/COPYING
  9. -rwxr-xr-x root/root      7924 2005-10-11 03:40:23 keychain-2.6.1/keychain.pod
  10. rzhang@beedal01-/disk1/rzhang/bin>
复制代码


2.2
生成你的密钥,设置passphrase,并记住你的passphrase.
把新的公钥加到authorized_keys里

  1. rzhang@beedal01-/disk1/rzhang/.ssh> ssh-keygen -t dsa -b 1024 -f ./id_dsa
  2. Generating public/private dsa key pair.
  3. Enter passphrase (empty for no passphrase):
  4. Enter same passphrase again:
  5. Your identification has been saved in ./id_dsa.
  6. Your public key has been saved in ./id_dsa.pub.
  7. The key fingerprint is:
  8. 5d:0b:88:01:7e:9c:09:28:86:83:96:c8:23:09:b2:11 rzhang@beedal01

  9. rzhang@beedal01-/disk1/rzhang/.ssh>cat ./id_dsa.pub >> ~/.ssh/authorized_keys

复制代码

(我这里举的例子是用户有唯一的home dir,这样我只需要在一个地方安装并配置了keychain和ssh的key认证,就可以了
要是你的环境是在不同的home dir,那么就要在每个系统上安装一遍,并添加key到authorized_keys。而且启动脚本也要写在系统的profile 和login里了。)
到你的home dir.

mkdir dir

  1. cd ~/
  2. mkdir bin
  3. cp keychain ~/bin/
复制代码


add keychain to your startup scripts.make it work under all kinds of shell.

  1. echo "~/bin/keychain ~/.ssh/id_dsa" >> ~/.login
  2. echo "source ~/.keychain/`hostname`-csh" >> ~/.login
  3. echo "~/bin/keychain ~/.ssh/id_dsa" >> ~/.profile
  4. echo ". ~/.keychain/`hostname`-sh" >> ~/.profile
复制代码


现在你就已经设置好keychain了。


3.怎样使用keychain ?
当我从beedal01登陆到 pod这台机器:
keychain会自动在pod这台机器上检查是否有你的ssh-agent,如没有就启动一个,并自动添加你的key到agent,并提示你输入passphrase.
这样在pod这台机器上,就会有你的一个ssh-agnet一直在运行,并且存储了你的密钥在里面,只要pod没有重新启动,那么该agent就一直在后台。
从现在起你就可以从pod以你的用户ssh任何其他的机器了(直到pod重启,或agent死掉)。(前提是那台机器和你是同一个home dir)

当然登陆到新的机器后,那台机器又会提示你输入passphrase,以保存你的key在那台机器里。




  1. rzhang@beedal01-/disk1/rzhang/.ssh> ssh pod
  2. Enter passphrase for key '/disk1/rzhang/.ssh/id_dsa':
  3. Last login: Wed Dec  7 12:51:09 2005 from beedal01
  4. ...
  5. ...

  6. KeyChain 2.6.1; http://www.gentoo.org/proj/en/keychain/
  7. Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL

  8. * Found existing ssh-agent (3193)
  9. * Adding 1 ssh key(s)...
  10. Enter passphrase for /disk1/rzhang/.ssh/id_dsa:
  11. Identity added: /disk1/rzhang/.ssh/id_dsa (/disk1/rzhang/.ssh/id_dsa)
复制代码


当你下次登陆到pod的时候。
keychain就会自动去找,你是否有个agent在后台,如果有,就使用该agent.
自然就会变成这个样子。从而实现了passwordless.

  1. [rzhang@beedal01 ~]$ ssh pod
  2. Last login: Wed Dec  7 12:51:56 2005 from beedal01
  3. ...
  4. ...

  5. KeyChain 2.6.1; http://www.gentoo.org/proj/en/keychain/
  6. Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL

  7. * Found existing ssh-agent (3193)
  8. * Known ssh key: /disk1/rzhang/.ssh/id_dsa
复制代码

[ 本帖最后由 zhangr 于 2005-12-7 13:23 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP