Ssh

將 ssh-agent 與 KDE 一起使用?

  • June 1, 2020

我以前有過這個工作,但由於某種原因,它不能在我的新系統上工作。

.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)。

  1. 使用預設錢包 ( ) 設置 KWallet,kdewallet並使用與您的登錄密碼相同的密碼。確保它在登錄時解鎖。Arch Wiki 對此有一些資訊;就我而言,我不得不取消註釋/etc/pam.d/sddm.
  2. 使用您喜歡的任何密碼創建您的 SSH 密鑰 ( ssh-keygen)(因為您將使用密碼管理器,所以不需要記住它)。
  3. 確保ssh-addksshaskpass已安裝。
  4. 添加一個自動啟動腳本,如下所示:
$ cat $HOME/.config/autostart-scripts/ssh
#!/bin/sh
SSH_ASKPASS=/usr/bin/ksshaskpass ssh-add </dev/null

執行chmod +x並執行一次。Ksshaskpass 應該詢問您的 SSH 密碼。告訴它記住密碼(這使用 KWallet)。再次執行並註意這次它沒有詢問。

應該是這樣的。

引用自:https://serverfault.com/questions/254508