ssh-agent


ssh-agent是一種控制用來保存公鑰身份驗證所使用的私鑰的程序。

ssh-agent是一個密鑰管理器,運行ssh-agent以后,使用ssh-add將私鑰交給ssh-agent保管,其他程序需要身份驗證的時候可以將驗證申請交給ssh-agent來完成整個認證過程。

$eval `ssh-agent -s` 注意這里是反引號

$ssh-add

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

ssh-agent是管理多個ssh key的代理,受管理的私鑰通過ssh-add來添加

好處1:不用重復輸入密碼。

用 ssh-add 添加私鑰時,如果私鑰有密碼的話,照例會被要求輸入一次密碼,在這之后ssh-agent可直接使用該私鑰,無需再次密碼認證。

好處2:不用到處部署私鑰

假設私鑰分別可以登錄同一內網的主機 A 和主機 B,出於一些原因,不能直接登錄 B。可以通過在 A 上部署私鑰或者設置 Forwarding 登錄 B,也可以轉發認證代理連接在 A 上面使用ssh-agent私鑰登錄 B;可以在A上直接sftp傳文件到B上。

如這邊有一台機器是local,能通過公鑰直接登陸server1和server2。server1和server2之間無公鑰登陸。

現在要在server1上直接登陸server2,在local上執行

ssh-agent
ssh-add

執行了之后就將私鑰給ssh-agent保管了,server1上面登陸server2的時候,需要私鑰驗證的時候直接找ssh-agent要就可以了。

接下來登陸server1,注意-A

ssh -A server1

可以發現server1上多了/tmp/ssh-xxxxxxxxx/agent.xxxxx的socket,之后神奇的事發生了,在 server1上可直接進server2,只需執行如下命令,如果加了-A則可以繼續ssh forwarding,以至無限的機器forwarding。

ssh (-A) server2

同樣的原理可以試一下sftp, scp等基於ssh的命令。

如運行ssh-add,遇到“Could not open a connection to your authentication agent.”。

解決:需要ssh-agent啟動bash,或者說把bash掛到ssh-agent下面。

ssh-agent bash --login -i ssh-add



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM