為 dropbear ssh-access 加密私鑰
我想使用
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 中),然後從那裡對其進行加密。