如何设置 dropbear 本地到 openssh 远程的授权密钥

如何设置 dropbear 本地到 openssh 远程的授权密钥

我有一台运行 dropbear 的本地机器,我想连接到运行 openssh 的远程主机,而不必每次都输入密码。

我已经发现很多关于如何进行反向操作的文档,这似乎很容易,因为 dropbear 确实支持/etc/dropbear/authorized_keys。然而我想要的似乎不那么容易,我找不到任何关于这方面的文档。

我尝试复制/etc/dropbear/dropbear_rsa_host_key到远程主机.ssh/authorized_keys,但没有成功。所以要么是我操作不正确(很有可能),要么就是无法通过这种方式完成。

我曾尝试在远程主机上生成密钥,然后将其复制到本地.ssh/,并将公共密钥添加到远程,.ssh/authorized_keys但这也不起作用。

我还没想出其他可以尝试的方法,所以我想我会尝试询问比我更有经验的人。

答案1

您的问题中有几点不清楚:

  • dbclientdropbear客户端程序
  • dropbear/dbclient无法本地读取 OpenSSH 私钥文件,因此必须使用以下方式创建dropbearkey或转换它们:dropbearconvert

这就是如何在 dropbear 上创建私钥客户机并将公钥附加到 OpenSSH 上的 authorized_keys 文件中服务器主机

mkdir ~/.ssh
dropbearkey -t ed25519 -f ~/.ssh/id_dropbear # this creates a private key in the default location for dbclient
#substitute the username and host on the following line and please note the use of both single quotes (') and back ticks (`)
dbclient username@host 'mkdir ~/.ssh; echo '`dropbearkey -y -f ~.ssh/id_dropbear | grep ssh `'>> ~/.ssh/authorized_keys; chmod 600 ~./ssh/authorized_keys'  # accept the hostkey and login using your password. You should be returned to the client prompt
dbclient username@host # client should automatically use the id_dropbear file for key authentication.

我在两个 Debian 11(bullseye)VM 上测试了这一切,但它应该适用于使用标准 dropbear 包的任何 Linux 操作系统。

编辑:需要补充的是,私钥应始终在本地机器上生成,而公钥应复制到远程机器。本地主机之外的私钥几乎总是存在安全风险(加密备份除外)。

相关内容