我有一台运行 dropbear 的本地机器,我想连接到运行 openssh 的远程主机,而不必每次都输入密码。
我已经发现很多关于如何进行反向操作的文档,这似乎很容易,因为 dropbear 确实支持/etc/dropbear/authorized_keys
。然而我想要的似乎不那么容易,我找不到任何关于这方面的文档。
我尝试复制/etc/dropbear/dropbear_rsa_host_key
到远程主机.ssh/authorized_keys
,但没有成功。所以要么是我操作不正确(很有可能),要么就是无法通过这种方式完成。
我曾尝试在远程主机上生成密钥,然后将其复制到本地.ssh/
,并将公共密钥添加到远程,.ssh/authorized_keys
但这也不起作用。
我还没想出其他可以尝试的方法,所以我想我会尝试询问比我更有经验的人。
答案1
您的问题中有几点不清楚:
dbclient
是dropbear
客户端程序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 操作系统。
编辑:需要补充的是,私钥应始终在本地机器上生成,而公钥应复制到远程机器。本地主机之外的私钥几乎总是存在安全风险(加密备份除外)。