Ssh

為 dropbear ssh-access 加密私鑰

  • October 4, 2020

我想使用dropbear最小的 ssh-server 和 -client 作為替代方案。 dropbear允許使用 private-public-keys 進行 ssh 訪問,儘管這些密鑰與所使用的密鑰不同,openssh並且必須使用dropbearconvert-command進行轉換(這很容易做到)。

我遇到的問題是它dropbear本身不支持加密的私鑰。但是在我的筆記型電腦上留下未加密的 ssh-keys 是我想避免的原則。

因此我的問題是:是否有人對如何規避該問題並擁有一種方法(腳本?)有任何好主意:

  • 解密我用於 dropbear 的密鑰(例如 using gnupg)並將它們載入到記憶體中,
  • 將它們傳遞給dbclient-binary(dropbear-client-application),並且
  • 啟動 ssh 連接

此外,我想知道 dropbear 是否存在替代ssh-config 選項(尤其是 for 的選項Host)(因此是否可以為 dropbear 創建一個特定於主機的配置文件,我可以在其中指定例如 IP-地址、埠和其他詳細資訊)。

似乎dbclient完全願意從命名管道或 FIFO 中讀取私鑰。

因此,使用 bash 的程序替換,您可以編寫:

dbclient -i <(cat .ssh/id_dropbear) user@server

所以如果你有一個 GPG encrypted .ssh/id_dropbear.gpg,你可以把它寫成:

dbclient -i <(gpg --decrypt .ssh/id_dropbear.gpg) user@server

並在輸入您的解密密碼後,dbclient使用您的 GPG 加密私鑰登錄。所以這部分工作正常。

這裡的主要問題是,如果您.ssh/id_dropbear在此之前已經儲存了未加密的數據,則可以通過取證方式將其恢復。要從 動態加密密鑰dropbearconvert,您可以應用相同的原理:

$ dropbearconvert openssh dropbear \
   .ssh/id_openssh >(gpg --symmetric --output .ssh/id_dropbear.gpg)
Key is a ssh-rsa key
Wrote key to '/dev/fd/63'

但它在實踐中似乎並沒有太大用處,因為它dropbearconvert也只為 OpenSSH 的加密私鑰提供了非常有限的支持。對於這個例子,我必須專門創建一個 OpenSSH 密鑰,它可以dropbearconvert理解……

不幸的是,這個技巧似乎根本不適用於dropbearkey命令,由於某種原因,它堅持寫入臨時文件並重命名它,完全繞過管道。

因此,您似乎別無選擇,只能首先生成私鑰tmpfs(例如在現場 cd 中/dev/shm或從現場 cd 中),然後從那裡對其進行加密。

引用自:https://unix.stackexchange.com/questions/612870