dropbear实现免密码ssh登录或scp文件传输

dropbear实现免密码ssh登录或scp文件传输基于dropbear服务实现scp的免密传输,基本思路是:将主机A通过dropbearkey生成公钥和私钥,并将公钥的内容复制到主机B的authorized_keys文件内,从而建立主机B对主机A的信任关系

        dropbear是轻量级的sshd服务器,与OpenSSH相比,他更简洁,更小巧,运行起来占用的内存也更少,因此被很多嵌入式设备所使用。SSH:Secure Shell (SSH) 是一个允许两台主机之间通过安全的连接进行数据交换的网络协议。SSH采用公钥加密技术来验证远程主机,以及(必要时)允许远程主机验证用户。scp是基于SSH协议的文件传输。在某些应用项目中,现场的嵌入式设备(linux内核)可能需要将数据或日志传输到后端的服务器上,此时可借助于shell脚本,利用scp定时传输数据至后台。因脚本是自动执行,则要求scp时不用输入服务器密码。

        网上关于scp免密传输的文章很多,此文主要是学习记录,并给有需要的人参考。scp免密码输入传输文件的基本思路是:将主机A的SSH生成公钥和私钥,并将公钥的内容复制到主机B的 authorized_keys 文件内,从而建立主机B对主机A的信任关系。如此,主机A通过SSH连接主机B,或通过SCP向主机B传输文件就可不用输入密码连接。具体实现主要分以下四个步骤:

第一步:主机A生成公钥

假设主机A的SSH是基于dropbear实现,一般路径为:/etc/dropbear/

dropbear实现免密码ssh登录或scp文件传输

可见,该路径下已有2个密钥文件。若没有,也可以通过如下指令生成:

dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key

dropbearkey -t rsa -s 1024 -f /etc/dropbear/dropbear_rsa_host_key

关于dropbearkey的用法说明如下:

Usage: dropbearkey -t <type> -f <filename> [-s bits]

-t  type Type of key to generate. One of:  rsa

-f  filename  Use filename for the secret key. ~/.ssh/id_dropbear is recommended for client keys.

-s  bits Key size in bits, should be a multiple of 8 (optional)

-y  Just print the publickey and fingerprint for the  private key in <filename>.

通过密钥文件生成公钥Key:

dropbearkey -y -f /etc/dropbear/dropbear_rsa_host_key  >> /etc/dropbear/authorized_keys_01

生成的公钥Key文件名字可以自己命名,此处命名为:authorized_keys_01

第二步:主机A的公钥加到主机B的authorized_keys中

进入主机B的用户 ~/.ssh 路径下( 即 /home/xxx/.ssh,可能是一个隐藏文件,可以在 /home/xxx  目录下用 ls -al 查看 。xxx表示系统的用户名称)。若没有该目录,则执行ssh-keygen可生成。ssh-keygen即是生成密钥文件,生成的密钥文件即是保存在~/.ssh 路径下。

将上述的主机A生成的authorized_keys_01中的【第二行】内容复制到~/.ssh 路径下的authorized_keys文件末尾。若没有该文件,可以手动建立一个该文件,命名为authorized_keys。

第三步:修改权限

需要修改上述的/home/xxx 、 ~/.ssh 和authorized_keys权限。

authorized_keys 文件必须是600权限(也就是-rw——-)或者644;

~/.ssh 目录必须是700权限,即drwx——;

/home/xxx 目录必须是755权限,即drwxr-xr-x。

网上有文章说,第(3)条权限不能为777,必须为755,否则无法建立信任关系。

第四步:修改主机B的sshd_config设置

修改主机B的系统sshd配置文件( /etc/ssh/sshd_config ),使允许使用密钥免密登录配置。配置项如下:

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile      .ssh/authorized_keys

在sshd_config中去除相关项前面的注释符#,并改为上述的值。重启sshd,service sshd restart 或 systemctl restart sshd.service。

按上述四步操作完成后,从主机A ssh连接或scp主机B,便不需要输入密码了!

但dropbear免密码ssh或scp需要按如下指令格式:

ssh -i /etc/dropbear/dropbear_rsa_host_key user@hostB-ip

scp -i /etc/dropbear/dropbear_rsa_host_key user@hostB-ip

即需要指定主机A所使用的密钥文件。(OpenSSH好像不需要 -i,直接ssh或scp就可以)。

今天的文章dropbear实现免密码ssh登录或scp文件传输分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/81596.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注