SSH密鑰與密碼,與鑰匙串
鑰匙鏈是一個小工具,其管理以您的名義ssh-agent和允許的ssh-agent保持運行的登錄會話結束時。在後續登錄中,鑰匙串將連接到現有的ssh-agent實例。實際上,這意味着必須在重新啓動後首次登錄時輸入密碼。在後續登錄中,將使用來自現有ssh-agent實例的未加密密鑰。這對於允許無密碼ssh密鑰的cron作業中的無密碼RSA/DSA身份驗證也很有用。
要啓用鑰匙串,請安裝鑰匙串並在〜/中添加如下內容。bash_profile:
eval keychain --agents ssh --eval id_rsa
從安全角度來看,ssh-ident和keychain比ssh-agent實例更受限於特定會話的生命週期,但它們提供了高級別的便利。爲了提高鑰匙串的安全性,有些人在他們的〜/ .bash_profile鑰匙串調用中加入了--clear選項。通過這樣做,必須在登錄時重新輸入密碼,但在用戶註銷後,cron作業仍然可以訪問未加密的密鑰。鑰匙串wiki頁面包含更多信息和示例。
收到此信息;
https://unix.stackexchange.com/questions/90853/how-can-i-run-ssh-add-automatically-without-password-prompt
希望這有助於
我個人能夠在終端啓動自動輸入我的密碼通過執行此操作:(你當然可以,修改腳本,它適合你的需要)
編輯bashrc文件以添加此腳本;
檢查SSH代理清醒
如果[-z 「$ SSH_AUTH_SOCK」];然後 EXEC的ssh-agent的bash -c 「SSH-增加; $ 0」 回聲 「的SSH代理被驚醒」 退出 網絡
上面一行將開始在終端推出的預期腳本。
./ssh.exp
這裏有此內容的expect腳本
#!/usr/bin/expect
set timeout 20
set passphrase "test"
spawn "./keyadding.sh"
expect "Enter passphrase for /the/path/of/yourkey_id_rsa:"
send "$passphrase\r";
interact
這裏是我的keyadding.sh腳本的內容(你必須把兩個腳本在你的主文件夾,一般是/ home/user中)
#!/bin/bash
ssh-add /the/path/of/yourkey_id_rsa
exit 0
我會強烈建議加密PA在.exp腳本中使用ssword,以及將這個.exp文件重命名爲term_boot.exp或任何其他用於安全目的的文件。不要忘記使用nano或vim直接從終端創建文件(例如:nano ~/.bashrc | nano term_boot.exp
)以及chmod +x script.sh
以使其可執行。 A chmod +r term_boot.exp
也是有用的,但是你必須在你的bashrc文件中的./ssh.exp之前添加sudo。因此,每次啓動終端時,您都必須輸入您的sudo密碼。對我來說,這比密碼更方便,因爲我記得爐旁的管理員(sudo)密碼。
此外,這是另一種方式來做到這一點,我認爲; https://www.cyberciti.biz/faq/noninteractive-shell-script-ssh-password-provider/
當我有時間的時候,肯定會改變我的這個方法。
我們應該停止推廣期望作爲自動化ssh的方式。 Ssh故意使這些提示很難自動化,以推動我們使用正確的解決方案:命令行標誌繞過確認和公鑰/私鑰以消除密碼提示。 – 2016-05-13 14:40:45
這很理想,但現實世界往往不理想。對於這個問題,這是通常的做法。如果您使用了密鑰,那麼您可能也需要在密鑰上輸入密碼,然後您可能會遇到同樣的情況。當然,你可以使用'ssh-agent','keychain'等,但有時候會有不便或不切實際的原因。 – jjlin 2016-05-17 00:42:24