ssh密鑰管理器,ssh-agent命令是一種控制用來保存公鑰身份驗(yàn)證所使用的私鑰的程序。ssh-agent在X會(huì)話或登錄會(huì)話之初啟動(dòng),所有其他窗口或程序則以客戶端程序的身份啟動(dòng)并加入到ssh-agent程序中。通過使用環(huán)境變量,可定位代理并在登錄到其他使用ssh機(jī)器上時(shí)使用代理自動(dòng)進(jìn)行身份驗(yàn)證。
其實(shí)ssh-agent就是一個(gè)密鑰管理器,運(yùn)行ssh-agent以后,使用ssh-add將私鑰交給ssh-agent保管,其他程序需要身份驗(yàn)證的時(shí)候可以將驗(yàn)證申請交給ssh-agent來完成整個(gè)認(rèn)證過程。
我們認(rèn)為你正在用ssh key做權(quán)限認(rèn)證。為了避免你在啟動(dòng)ssh agent時(shí)重復(fù)輸入密碼,你可以輸下面兩個(gè)命令
ssh-agent bash
:啟動(dòng)ssh agent,并把bash掛到上面ssh-add .ssh/id_rsa
:添加私鑰并由ssh agent保管,這樣下次就不需要再輸入密碼了
命令語法
ssh-agent [-c | -s] [-d] [-a bind_address] [-t life] [command [arg ...]]
ssh-agent [-c | -s] -k
命令選項(xiàng)
- -a bind_address:bind the agent to the UNIX-domain socket bind_address.
- -c:生成C-shell風(fēng)格的命令輸出。
- -d:調(diào)試模式。
- -k:把ssh-agent進(jìn)程殺掉。
- -s:生成Bourne shell 風(fēng)格的命令輸出。
- -t life:設(shè)置默認(rèn)值添加到代理人的身份最大壽命。
運(yùn)行ssh-agent
> ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-lWA15nOUhcYG/agent.26310; export SSH_AUTH_SOCK;
SSH_AGENT_PID=26315; export SSH_AGENT_PID;
echo Agent pid 26315;
運(yùn)行ssh-agent,它會(huì)打印出來它使用的環(huán)境和變量。
使用-d參數(shù),運(yùn)行調(diào)試模式
> ssh-agent -d
使用-k參數(shù)殺掉ssh-agent進(jìn)程
> ssh-agent -k
ssh-agent
的使用場景
使用不同的密鑰連接到不同的主機(jī)時(shí),需要手動(dòng)指定對應(yīng)的密鑰。ssh-agent 可以幫助我們選擇對應(yīng)的密鑰進(jìn)行認(rèn)證,不用手動(dòng)指定密鑰即可進(jìn)行連接。
當(dāng)私鑰設(shè)置了密碼,我們又需要頻繁的使用私鑰進(jìn)行認(rèn)證時(shí),ssh-agent 可以幫助我們免去重復(fù)的輸入密碼的操作。
原文鏈接:https://rumenz.com/rumenbiji/linux-ssh-agent.html
微信公眾號(hào):入門小站
本文摘自 :https://blog.51cto.com/u