Featured image of post 解决Openwrt下因为dropbear ssh不支持常规密钥文件的问题

解决Openwrt下因为dropbear ssh不支持常规密钥文件的问题

问题

在Openwrt中,如果我们执行ssh,带上私钥文件的时候,可能会出现如下错误

1
2
root@OpenWrt:/opt/myhome
# scp -i secret_rsa_file 1215.json [email protected]:/usr/sha re/nginx/html/xxxx.json /usr/bin/dbclient: Exited: String too long

解决

这个问题是因为在openwrt中使用的是dropbear client

1
2
3
4
root@OpenWrt:/opt/myhome# ssh 
Dropbear SSH client v2019.78 
https://matt.ucc.asn.au/dropbear/dropbear.html 
Usage: ssh [options] [user@]host[/port] [command]

这个客户端,只认dropbear格式的私钥,所以如果我们是从自己的服务器或者笔记本上拷贝过来的私钥,因为格式不一样,就会导致前面的问题。 解决办法也很简单,我们用dropbear提供的工具生成dropbear格式的私钥文件就可以了。

1
dropbearkey -f id_rsa -t rsa #-f 指定生成的文件名, -t指定加密类型

执行完这个命令后,会打印出来对应的公钥信息。

1
2
root@OpenWrt:/opt/myhome# dropbearkey -f id_rsa -t rsa 
Generating 2048 bit rsa key, this may take a while... Public key portion is: ssh-rsa AAAAB3NzaC1yxxxxxAABAQCo1Xx8c/Uam2bxxxxcRUaHJiUYfaW0jRC2qThvYau7o2m16qE9uWwWNU5F4rRtvWRc46x+HdVPK4L4vFuvNKrBv/NTKGJ24hgv9W0kBGHbpFbWxxxxxxxxuOWZG1/NC4FYx09TJXPxxxxxxYVybTh/J0cfUVXD3R3xYuMqQRjyCblIYjyx+tmFg+owcpOXLQUWagxGYFu0lUnhYkDnD+ZhXcW1GcnHf+xxxxxxJdoBsl5mxrKsoDxxxx6RKbv8zRjYt/hWTgvQez7arB root@OpenWrt Fingerprint: sha1!! e9:8c:73:xx:kd:bc:10:88:09:78:c1:06:99

将公钥信息拷贝到目标服务器上中 authorized_keys 文件中,然后就可以使用scp到命令直接使用私钥来传文件了。

comments powered by Disqus
宇宙备案号:SOL-EARTH-20070001
使用 Hugo 构建
主题 StackJimmy 设计