歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

使用ssh-agent

使用ssh-agent   ssh-agent是一種控制用來保存公鑰身份驗證所使用的私鑰的程序。ssh-agent在X會話或登錄會話之初啟動,所有其他窗口或程序則以客戶端程序的身份啟動並加入到ssh-agent程序中。通過使用環境變量,可定位代理並在登錄到其他使用ssh機器上時使用代理自動進行身份驗證。    www.2cto.com   其實ssh-agent就是一個密鑰管理器,運行ssh-agent以後,使用ssh-add將私鑰交給ssh-agent保管,其他程序需要身份驗證的時候可以將驗證申請交給ssh-agent來完成整個認證過程。通過使用ssh-agent就可以很方便的在不的主機間進行漫游了,假如我們手頭有三台server:host1、host2、host3且每台server上到保存了本機(supersun.biz)的公鑰,因此我可以通過公鑰認證登錄到每台主機:   [[email protected] ~]#ssh host1 Last login: Thu Oct 18 13:56:08 2007 from supersun [root@host1 root]#    [[email protected] ~]#ssh host2 Last login: Fri Oct 12 11:14:44 2007 from supersun [root@host2 root]#    [[email protected] ~]#ssh host3 Last login: Sat Sep 29 10:21:32 2007 from supersun [root@host3 root]#    但是這三台server之間並沒有並沒有保存彼此的公鑰,而且我也不可能將自己的私鑰存放到server上(不安全),因此彼此之間沒有公鑰進 行認證(可以密碼認證,但是這樣慢,經常輸密碼,煩且密碼太多容易忘)。但是如果我們啟用ssh-agent,問題就可以迎刃而解了。    啟用ssh-agent:   [[email protected] ~]#eval `ssh-agent ` Agent pid 3526   添加私鑰:   [[email protected] ~]#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上了。    [[email protected] ~]#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文件:   [[email protected] ~]#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) [[email protected] ~]#   添加了新的密鑰。
Copyright © Linux教程網 All Rights Reserved