Ssh
將 ssh-agent 與 KDE 一起使用?
我以前有過這個工作,但由於某種原因,它不能在我的新系統上工作。
在
.kde4/Autostart/
我有一個指向 ssh-agent 的符號連結01-sshagent
,然後呼叫一個簡單的腳本02-sshkeys
,如下所示:/usr/bin/ssh-add $(find $HOME/.ssh/keys -type f | egrep -v '\.pub$')
問題似乎是,當我啟動時,ssh-agent 執行正常,但 KDE 不會保留輸出並將其儲存在環境中,因此對於每個 Konsole 會話,我必須執行
ps
以查找 PID,然後手動類型:SSH_AUTH_SOCK=/tmp/ssh-YtvdiEtW3065/agent.3065; export SSH_AUTH_SOCK; SSH_AGENT_PID=<pidnumber>; export SSH_AGENT_PID;
…只是為了讓它工作,它確實…就在那個 Konsole 視窗中。
我已經嘗試刪除上述符號連結,只是讓 ssh 腳本看起來像這樣:
/usr/bin/ssh-agent | sh /usr/bin/ssh-add $(find $HOME/.ssh/keys -type f | egrep -v '\.pub$')
但是,代理變數仍然不在會話中,並且從未提示我輸入密鑰的密碼。
我顯然錯過了一些東西,但它是什麼?
我的簡單解決方案是只執行一個 ssh-agent 並始終保持執行。如果你真的想,你可以在註銷時殺死它。關鍵是只使用固定插座。添加 ssh-agent -a /tmp/ $ USER.agent to an Autostart script. Then do “export SSH_AUTH_SOCK=/tmp/ $ USER.agent”後跟 ssh-add。此外,您可以將該導出添加到您的 .bashrc、.profile 或其他 shell 登錄腳本,並且即使在使用遠端 ssh 時也始終可以訪問代理。
這是一個老問題,可能值得更新答案。以下對我有用(Fedora 31 / KDE)。
- 使用預設錢包 ( ) 設置 KWallet,
kdewallet
並使用與您的登錄密碼相同的密碼。確保它在登錄時解鎖。Arch Wiki 對此有一些資訊;就我而言,我不得不取消註釋/etc/pam.d/sddm
.- 使用您喜歡的任何密碼創建您的 SSH 密鑰 (
ssh-keygen
)(因為您將使用密碼管理器,所以不需要記住它)。- 確保
ssh-add
並ksshaskpass
已安裝。- 添加一個自動啟動腳本,如下所示:
$ cat $HOME/.config/autostart-scripts/ssh #!/bin/sh SSH_ASKPASS=/usr/bin/ksshaskpass ssh-add </dev/null
執行
chmod +x
並執行一次。Ksshaskpass 應該詢問您的 SSH 密碼。告訴它記住密碼(這使用 KWallet)。再次執行並註意這次它沒有詢問。應該是這樣的。