国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

OpenSSH 密鑰管理:ssh-agent和keychain
2005-11-27   

介紹 ssh-agent
是專為既令人愉快又安全的處理 RSA 和 DSA 密鑰而設計的特殊程序,它包括在OpenSSH分發內(請參閱 本系列文章的第 1 部分以得到關于 RSA 和 DSA 認證的介紹)。不同于 是個長時間持續運行的守護進程(daemon),設計它的唯一目的就是對解密的專用密鑰進行高速緩存。

包含的內建支持允許它同 通信,允許 不必每次新連接時都提示您要密碼才能獲取解密的專用密鑰。對于 ,您只要使用 把專用密鑰添加到 的高速緩存中。這是個一次性過程;用過 之后, 將從 獲取您的專用密鑰,而不會提示要密碼短語來煩您了。

使用 ssh-agent
讓我們看一下整個 密鑰高速緩存系統的工作過程。 啟動時,在脫離 shell(外殼程序)并繼續在后臺運行之前它會輸出一些重要的環境變量。以下是 開始時生成的輸出的一些示例:

% ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-XX4LkMJS/agent.26916; export SSH_AUTH_SOCK;
SSH_AGENT_PID=26917; export SSH_AGENT_PID;
echo Agent pid 26917;

正如您所看到的,事實上 的輸出是一系列 bash 命令;如果這些命令被執行,則將設置兩個環境變量:SSH_AUTH_SOCK 和 SSH_AGENT_PID。內含的 export 命令使這些環境變量對之后運行的任何附加命令都可用。唔, 如果 shell 真對這些行進行計算,這一切才會發生,但是此時它們只是被打印到標準輸出(stdout)而已。要使之確定,我們可以象下面這樣調用

eval `ssh-agent`

這個命令先讓 bash 運行 后對 的輸出進行計算。shell 以這種調用方式(使用反引號,而不是普通的單引號)設置并導出 SSH_AGENT_PID 及 SSH_AUTH_SOCK 變量,使這些變量對于您在登錄會話期間啟動的所有新進程都可用。

啟動 的最佳方式就是把上面這行添加到您的 ~/.bash_profile 中;這樣,在您的登錄 shell 中啟動的所有程序都將看到環境變量,而且能夠定位 ,并在需要的時候向其查詢密鑰。尤其重要的環境變量是 SSH_AUTH_SOCK;SSH_AUTH_SOCK 包含有 可以用來同 建立對話的 UNIX 域套接字的路徑。

使用 ssh-add
但是 啟動時高速緩存當然是空的,里面不會有解密的專用密鑰。在我們真能使用 之前,首先還需要使用 命令把我們的專用密鑰添加到 的高速緩存中。下面的示例中,我使用 把我的 ~/.ssh/identity 專用 RSA 密鑰添加到 的高速緩存中:

# ssh-add ~/.ssh/identity
Need passphrase for /home/drobbins/.ssh/identity
Enter passphrase for /home/drobbins/.ssh/identity 
(enter passphrase)

正如您所看到的, 要我的密碼短語來對專用密鑰進行解密并存儲在 的高速緩存中以備使用。一旦您已經用 把專用密鑰(或多個密鑰)添加到 的高速緩存中, 在當前的 shell 中(如果您在 ~/.bash_profile 中啟動 ,情況應當是這樣)定義 SSH_AUTH_SOCK,那么您可以使用 同遠程系統建立連接而不必提供密碼短語。

ssh-agent 的不足之處
確實棒,但是其缺省配置還是會留給我們一些小小的不便。讓我們來看一下這些不足吧。

首先,~/.bash_profile 中的 使每次登錄會話都會啟動一個新的 副本;這不僅僅是有一丁點兒浪費,而且還意味著您得使用 向每個新的 副本添加專用密鑰。如果您只想打開系統上的一個終端或控制臺,這沒什么大不了的,但是我們中大多數人打開相當多的終端,每次新打開控制臺都需要鍵入密碼短語。從技術角度講,既然一個 進程的確應當足夠了,要是我們還需這樣做,這毫無道理。

有關 的缺省設置的另外一個問題是它同 cron 作業不兼容。由于 cron 作業是 cron 進程啟動的,這些作業無法從它們的環境中繼承 SSH_AUTH_SOCK 變量,因而也無從知道 進程正在運行以及如何同它聯系。事實證明這個問題也是可以修補的。

開始用到 keychain
為了解決這些問題,我編寫了一個有用的 前端,它基于 bash,叫做 。 的特別之處在于它允許 每個系統使用一個 進程,而非每次登錄會話。這意味著您只需對每個專用密鑰執行一次 ,就一次。正如我們稍后將要看到的一樣, 甚至有助于優化 ,而這只要它試圖向那些正在運行的 添加其高速緩存中沒有的專用密鑰。

以下對 如何工作從頭到尾瀏覽一遍。從 ~/.bash_profile 中啟動時, 將首先查看 是否已經在運行了。如果沒有,它就啟動 并把重要的 SSH_AUTH_SOCK 和 SSH_AGENT_PID 變量記錄在 ~/.ssh-agent 文件中,一方面為了安全而保存,另一方面也是為了以后的使用。這是啟動 的最佳途徑;同使用平淡無奇的老式 一樣,我們在 ~/.bash_profile 內部執行必要的配置:

#!/bin/bash
#example ~/.bash_profile file
/usr/bin/keychain ~/.ssh/id_rsa
#redirect ~/.ssh-agent output to /dev/null to zap the annoying
#"Agent PID" message
source ~/.ssh-agent > /dev/null

正如您所看到的,對于 我們用 source 命令讀入并執行 ~/.ssh-agent 文件,而不是象我們直接使用 時所做的對輸出進行計算。但是,結果是一樣的:定義了非常重要的 SSH_AUTH_SOCK,而且正運行 以備使用。同時,因為 SSH_AUTH_SOCK 被記錄在 ~/.ssh-agent 里,只要用 source 命令讀入并執行 ~/.ssh-agent 文件,就可以輕易的把我們的 shell 腳本及 cron 作業同 連接起來。 本身也利用了這個文件;您應該記住 啟動時,它會查看現有的 是否正在運行。如果是,則它使用 ~/.ssh-agent 文件來獲得適當的 SSH_AUTH_SOCK 設置,這樣就使 能使用現有的代理程序而不必新啟動一個。只有在 ~/.ssh-agent 文件無效(指向一個不存在的 )或 ~/.ssh-agent 文件本身不存在時, 才會啟動新的 進程。

安裝 keychain
安裝 很容易。首先,直接到 keychain 工程主頁下載可用的 源壓縮文檔的最新版本。然后,安裝如下:

# tar xzvf keychain-1.0.tar.gz
# cd keychain-1.0
# install -m0755 keychain /usr/bin

既然 在 /usr/bin/ 目錄下,就請把它添加到您的 ~/.bash_profile 中,并把您的專用密鑰路徑作為參數。下面是一個既標準又好的啟用 的 ~/.bash_profile:

啟用 keychain 的 ~/.bash_profile 示例
#!/bin/bash
#on this next line, we start keychain and point it to the private keys that
#we'd like it to cache
/usr/bin/keychain ~/.ssh/id_rsa ~/.ssh/id_dsa
source ~/.ssh-agent > /dev/null
#sourcing ~/.bashrc is a good thing
source ~/.bashrc

Keychain 生效
您一為每次登錄時調用 配置好了 ~/.bash_profile,就請先退出再登錄回來。在您再次登錄時, 將啟動 ,并記錄下 ~/.ssh-agent 中的代理程序環境變量設置,然后提示您輸入在 ~/.bash_profile 中的 命令行指定的所有專用密鑰的密碼短語:

Keychain 首次啟動

您一輸入密碼短語,您的專用密鑰就會被高速緩存,同時 將退出。接著,用 source 命令讀入并執行 ~/.ssh-agent,初始化您的登錄會話以便同 一起使用。現在,如果您退出,然后再登錄回來,將發現 會找到現有的 進程;在您退出時,它并沒有終止。此外, 將驗證您指定的專用密鑰是否已經在 的高速緩存中了。如果沒有,那么將會提示您輸入正確的密碼短語,但如果一切進展順利,則現有 仍包含有您以前添加的專用密鑰;這意味著不會提示您輸入密碼:

Keychain 找到現有的 ssh-agent

祝賀您!您剛才已經登錄了,應該能夠用 連到遠程系統;您不必一登錄就使用 ,而且 也不會提示您輸入密碼短語。事實上,只要初始的 進程一直在運行,您就能不提供密碼登錄并建立 連接。 進程持續運行直到機器重新啟動也是很有可能的;由于您最可能在 Linux 系統上這樣設置,所以也許一連幾個月您都不必輸入密碼短語!歡迎來到安全的、使用 RSA 和 DSA 認證無密碼連接的世界。

繼續創建幾個新的登錄會話,您會發現每次 都會準確無誤的“鉤住”到同一 進程。不要忘記您也可以使 cron 作業和腳本“鉤住”正在運行的 進程。要在 shell 腳本和 cron 作業中使用 命令,只要確保先用 source 命令讀入并執行 ~/.ssh-agent:

source ~/.ssh-agent

然后,隨后所有的 命令就能夠找到當前正在運行的 ,并且象您在 shell 中一樣能建立安全的無密碼連接。

Keychain 選項
您啟動并運行 后,一定要鍵入 以熟悉 所有的命令行選項。我們要特別看一下這個選項: 選項。

還記得我在第 1 部分里闡釋了使用不加密專用密鑰是一種危險的做法,因為這種做法允許其它人盜用您的專用密鑰不提供密碼就可以從所有系統登錄到您的遠程帳戶。唔,盡管 不易遭到這種濫用(只要您使用加密的專用密鑰就行),但仍存在有可能可以利用的弱點,同 使得“鉤住”長時間持續運行的 進程如此容易這一事實直接相關。我想,如果闖入者以某種方式能想出我的密碼或密碼短語,還能登錄進入我的本地系統,會發生什么事情呢?如果出于某種原因他們能以我的用戶名登錄,那么 就會立刻授權他們訪問我的解密的專用密鑰,使他們可以輕而易舉的訪問我的其它帳戶。

現在,在繼續下面的內容之前,讓我們先客觀的表述一下安全威脅。如果由于某種原因一些惡意的用戶能以我的身份登錄, 確實會允許他們訪問我的遠程帳戶。但,盡管如此,這位闖入者要偷到我的加密的專用密鑰非常困難,因為它們仍舊在磁盤上保持著加密狀態。而且,得到我的專用密鑰訪問權要求用戶真的以我的身份 登錄,不單單是閱讀我的目錄中的文件而已。因此,濫用 是比只偷到一個不加密的專用密鑰困難得多的一項任務,后者只需要闖入者通過某種手段獲得我在 ~/.ssh 里的文件的訪問權,而不管是否是以我的身份登錄。不過,如果闖入者能夠成功的以我的身份登錄,通過使用我的加密專用密鑰他們造成相當多的額外損害。所以,如果您剛好在您不頻繁登錄或沒有對安全缺口進行密切監視的一臺服務器上使用 ,那么請您考慮使用 選項以提供附加的安全層。

選項允許您讓 假定把每次以您的帳戶的新登錄都當作是可能的安全缺口,直到能證明并非如此。當您啟動 時使用了 選項時,您登錄的時候 會立即刷新 的高速緩存里的所有專用密鑰,此后才執行它的常規職責。這樣,如果您是一位闖入者,則 會提示您輸入密碼短語而不會讓您訪問現有的高速緩存中的密鑰集合。但是,雖然這樣增強了安全性,卻使情況有點更不方便,尤其好象完全是 在運行,而 并沒有運行。此處,情況常常是這樣,一個人可以選擇或者安全性更高,或更方便,但不能兩者兼得。

盡管如此,使用帶有 仍然比只用 要好;請記住,當您使用 時,您的 cron 作業和腳本仍然能建立無密碼連接;這是因為專用密鑰是在 登錄時刷新,而不是在 退出時。由于從系統退出不會構成潛在的安全缺口,因而沒有理由要 來刷新 的密鑰作為響應。因此,對于不頻繁訪問又需要偶而執行安全拷貝任務的服務器而言,比如,備份服務器、防火墻及路由器, 選項是一個理想的選擇。


熱詞搜索:

上一篇:OpenSSH 密鑰管理:RSA/DSA 認證
下一篇:國家廣電總局應用啟明星辰天清IPS保障網絡安全

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
国产sm精品调教视频网站| 午夜av电影一区| 欧美一级久久久久久久大片| 91久久精品一区二区| 岛国精品一区二区| 成人不卡免费av| 99久久精品免费看| 色婷婷综合激情| 欧美主播一区二区三区| 欧美影院午夜播放| 3atv在线一区二区三区| 欧美电视剧在线观看完整版| 精品日韩在线观看| 亚洲国产精品激情在线观看| 中文字幕一区二区三| 一区二区三区在线视频播放 | 精品无人区卡一卡二卡三乱码免费卡 | 欧美伊人久久久久久午夜久久久久| av福利精品导航| 欧美丰满一区二区免费视频| 欧美图片一区二区三区| 欧美一级理论片| 欧美极品aⅴ影院| 亚洲最大成人网4388xx| 日本va欧美va瓶| 国产精品1区2区| 色综合久久综合| 欧美一区二区国产| 久久精品欧美日韩精品| 亚洲国产综合91精品麻豆| 免费一级片91| 99久久er热在这里只有精品66| 欧美三级一区二区| 337p亚洲精品色噜噜噜| 久久精品无码一区二区三区| 一区二区三区在线播放| 韩国视频一区二区| 欧美在线高清视频| 久久精品综合网| 日韩中文字幕av电影| 国产乱人伦偷精品视频免下载| 日本精品一级二级| 久久久亚洲午夜电影| 亚洲黄色片在线观看| 精品一区二区在线看| 色婷婷精品大视频在线蜜桃视频| 欧美日产国产精品| 亚洲图片激情小说| 日韩avvvv在线播放| 99re这里只有精品首页| 精品成人私密视频| 亚洲不卡一区二区三区| 成人三级在线视频| 欧美三级电影精品| 久久九九久久九九| 日本少妇一区二区| 一本一道波多野结衣一区二区| 粉嫩一区二区三区性色av| 91日韩精品一区| 日韩女优制服丝袜电影| 亚洲精品老司机| 成人免费毛片嘿嘿连载视频| 精品日产卡一卡二卡麻豆| 亚洲第一搞黄网站| 91色综合久久久久婷婷| 国产欧美精品一区二区三区四区| 麻豆精品一二三| 91精品国产色综合久久不卡蜜臀| 有码一区二区三区| 91捆绑美女网站| 国产精品国产自产拍在线| 国产精品亚洲专一区二区三区| 日韩欧美激情四射| 麻豆国产一区二区| 欧美一区二区三区免费观看视频| 亚洲成人午夜影院| 欧美日韩国产综合草草| 亚洲成人av在线电影| 欧美日韩国产综合一区二区三区| 亚洲va欧美va国产va天堂影院| 欧美色图在线观看| 亚洲成人精品一区二区| 欧美日韩精品一区视频| 日本v片在线高清不卡在线观看| 欧美日韩电影一区| 秋霞成人午夜伦在线观看| 69av一区二区三区| 精品亚洲国产成人av制服丝袜| 日韩欧美卡一卡二| 国产一区二区三区| 中文字幕亚洲一区二区av在线 | 播五月开心婷婷综合| 中文字幕第一区| 色综合天天做天天爱| 一区二区三区蜜桃网| 在线播放欧美女士性生活| 久久国产尿小便嘘嘘尿| 国产丝袜欧美中文另类| 99久久国产综合精品麻豆| 亚洲成人av电影| 精品国产成人系列| 成人毛片视频在线观看| 亚洲一区国产视频| 日韩欧美www| 99re8在线精品视频免费播放| 亚洲精品国产成人久久av盗摄| 欧美精品自拍偷拍| 国产精品一二二区| 亚洲香肠在线观看| 欧美精品一区二区在线观看| 成a人片国产精品| 亚洲成人免费影院| 日本一区二区三区国色天香| 在线亚洲免费视频| 精品一区二区在线免费观看| 综合分类小说区另类春色亚洲小说欧美| 欧美亚洲禁片免费| 国产一区二区三区在线观看免费| 亚洲日本va午夜在线电影| 欧美一二三四在线| 色999日韩国产欧美一区二区| 美女视频黄 久久| 亚洲精品成人a在线观看| 久久综合五月天婷婷伊人| 欧美性三三影院| 成人精品免费看| 久久91精品久久久久久秒播| 一区二区三区免费| 欧美韩国一区二区| 日韩欧美国产三级| 欧美精品 国产精品| 国产成人亚洲综合色影视| 亚洲成av人片观看| 亚洲欧美一区二区三区久本道91| 精品奇米国产一区二区三区| 在线观看日韩av先锋影音电影院| 国产不卡在线播放| 激情欧美一区二区| 男女男精品视频网| 亚洲1区2区3区视频| 亚洲免费看黄网站| 中文字幕av资源一区| 久久这里只有精品首页| 日韩一区二区三区在线观看| 欧美中文字幕一区| 在线视频综合导航| 在线免费精品视频| 色婷婷久久综合| 91福利在线导航| 色综合咪咪久久| 色综合夜色一区| 91国产丝袜在线播放| 91丝袜高跟美女视频| eeuss鲁片一区二区三区| 国产91高潮流白浆在线麻豆| 国产毛片精品国产一区二区三区| 九九九精品视频| 国产中文字幕一区| 国产一区二区美女| 岛国一区二区三区| 99久久国产综合精品色伊| 91网址在线看| 在线亚洲高清视频| 5566中文字幕一区二区电影| 7777女厕盗摄久久久| 精品国产免费人成电影在线观看四季| 日韩欧美一级在线播放| 精品久久久久久无| 久久九九99视频| 中文字幕亚洲一区二区va在线| 中文字幕在线观看一区| 一区二区免费视频| 秋霞av亚洲一区二区三| 国产一区二区三区四| 成人国产一区二区三区精品| 色av成人天堂桃色av| 欧美精品日韩一区| 久久久久久夜精品精品免费| 中文字幕制服丝袜成人av | 久久成人麻豆午夜电影| 国产精品自拍av| 91视频免费看| 日韩久久精品一区| 国产精品久久福利| 视频精品一区二区| 国产精品一级片| 欧美伊人久久大香线蕉综合69| 欧美成人video| 亚洲视频在线观看三级| 视频一区二区三区在线| 成人avav影音| 91精品视频网| 国产精品午夜免费| 视频一区欧美精品| 99麻豆久久久国产精品免费| 欧美精品一二三| 国产精品电影一区二区三区| 蜜臀久久久久久久| 97aⅴ精品视频一二三区| 日韩精品一区在线观看|