Centos下安装SSH工具dropbear并配置开机自启

dropbear是一个相对较小的SSH服务器和客户端,可以实现完整的SSH客户端和服务器版本协议,为节省空间和资源,并不支持SSH版本的向后兼容性。相比OpenSSH,其更简洁,更小巧,运行起来内存占用比也更小。在应用进程上,OpenSSH会开启两个sshd进程服务,而dropbear只开启一个进程,相较于OpenSSH,其对于硬件要求也更低,也更节约系统资源。

安装(在CentOS6和CentOS7测试通过):

yum install wget gcc gcc-c++ zlib* bzip2 -y
wget http://matt.ucc.asn.au/dropbear/releases/dropbear-2019.78.tar.bz2
tar -jxvf dropbear-2019.78.tar.bz2 && cd dropbear-2019.78
./configure
make 
make scp && make install
mkdir /etc/dropbear #创建文件夹
cd .. && rm -rf dropbear-2019.78
/usr/local/bin/dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key #生成证书
/usr/local/bin/dropbearkey -t rsa -s 4096 -f /etc/dropbear/dropbear_rsa_host_key #生成证书
echo 'port=222' >/etc/sysconfig/dropbear   #222为dropbear默认监听端口,可以自由修改
wget https://cikeblog.com/e/dropbear && mv -f dropbear /etc/rc.d/init.d/dropbear #下载配置文件并移动到相应目录
chmod +x /etc/rc.d/init.d/dropbear  #为service文件赋予可执行权限
chkconfig --add dropbear  #添加开机自启,如果不需要可以删除
service dropbear start #开启dropbear

项目地址:http://matt.ucc.asn.au/dropbear/dropbear.html

源码地址:http://matt.ucc.asn.au/dropbear/releases/

常用命令:

# service dropbear start
# service dropbear restart
# service dropbear stop

主要配置文件/etc/rc.d/init.d/dropbear:

#!/bin/bash
#
# chkconfig: 2345 75 50 默认级别 启动级别 关闭级别
# description: lightweight ssh2 implementation
#
[ -r /etc/rc.d/init.d/functions ] && . /etc/rc.d/init.d/functions

[ -f /etc/sysconfig/dropbear ] && . /etc/sysconfig/dropbear

dsskey=/etc/dropbear/dropbear_dss_host_key
rsakey=/etc/dropbear/dropbear_rsa_host_key

pidfile=/var/run/dropbear.pid
lockfile=/var/lock/subsys/dropbear

dropbearkey=/usr/local/bin/dropbearkey
dropbear=/usr/local/sbin/dropbear

port=${port:=22}

gendsskey() {
if [ ! -f $dsskey ]; then
$dropbearkey -t dss -f $dsskey &> /dev/null
[ $? -eq 0 ] && return 0 || return 1
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
echo -n "Generate dss key finished."
passed
echo
return 0
else
echo -n "Genrate dss key failed"
failure
echo
exit 6
fi
else
return 0
fi
}
genrsakey() {
if [ ! -f $rsakey ]; then
$dropbearkey -t rsa -f $rsakey -s 2048 &> /dev/null
# [ $? -eq 0 ] && return 0 || return 1 #这行不需要了
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
echo -n "Generate rsa key finished."
passed
echo
return 0
else
echo -n "Genrate rsa key failed"
failure
echo
exit 6
fi
else
return 0
fi
}
start() {
gendsskey
genrsakey

if [ -f $lockfile ]; then
echo -n "dropbear is already running."
failure
echo
exit 7
fi

echo -n "Start dropbear"
daemon --pidfile $pidfile $dropbear -p $port
RETVAL=$?
echo

if [ $RETVAL -eq 0 ];then
touch $lockfile
return 0
else
rm -f $lockfile $pidfile
return 1
fi
}
stop() {
if [ ! -f $lockfile ]; then
echo -n "dropbear is not running."
failure
echo
exit 8
fi

echo -n "Stop dropbear:"
killproc dropbear
RETVAL=$?
echo

[ $RETVAL -eq 0 ] && rm -f $lockfile && return 0 || return 1
}

case $1 in
start)
start ;;
stop)
stop;;
restart)
stop
start ;;
*)
exit 3 ;;
esac

如何卸载?

//先删除相关文件,再删掉相关进程
rm -rf /etc/dropbear/ /usr/local/sbin/dropbear /usr/local/bin/dropbear* 
ps -ef | grep dropbear | grep -v grep | awk '{print $2}' | xargs kill -9

如何手动启动?

/usr/local/sbin/dropbear 222
dropbear -E -p 2222 #-p指定端口

若不需要通过服务启动,可以手动执行以上代码启动,请注意带上监听端口号。
后面的222为需要监听的端口,启动后会自动存入后台服务中。

» 本文链接:Centos下安装SSH工具dropbear并配置开机自启
» 转载请注明来源:刺客博客
» 如果文章失效或者安装失败,请留言进行反馈。