使用与升级
cd /root/
apt install -y libz-dev libssl-dev
wget http://vip.123pan.cn/1815238395/download/openssh/9.6/openssh_9.6p1-1_amd64.deb
dpkg -i --force-all openssh_9.6p1-1_amd64.deb
sed -i 's/Type=notify/Type=simple/' /usr/lib/systemd/system/ssh.service
sed -i '/^PermitRootLogin/d' /etc/ssh/sshd_config
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
systemctl daemon-reload
systemctl enable ssh
systemctl restart ssh
检查
ssh -V
sshd -V
ssh -Q key
如何在本地打包deb呢?
下载源码
# 下载源码
cd /root
wget --no-check-certificate "https://mirrors.aliyun.com/openssh/portable/openssh-9.6p1.tar.gz" -O openssh-9.6p1.tar.gz
tar xzvf openssh-9.6p1.tar.gz
cd /root/openssh-9.6p1
使用debuild进行打包
# 安装编译环境
apt install -y bzr ubuntu-dev-tools bzr-builddeb debhelper dh-make
# 安装依赖软件
apt install -y libz-dev libssl-dev
sed -i '40s|/etc|/etc/ssh|' /usr/share/perl5/Debian/Debhelper/Buildsystem/autoconf.pm
# 配置参数
brz whoami "Jacky <wangyg@sddts.cn>"
# 初始化编译环境
cd /root/ && bzr dh_make openssh 9.6p1 openssh-9.6p1.tar.gz # 然后输入 s y
cd /root/openssh/debian
# 开始打包
debuild -uc -us -B
常见问题
重复使用bzr dh_make等命令,需要先删除/root/目录下已经产生的orig文件等,只留下openssh源码tar.gz文件即可。
sshd: no hostkeys available -- exiting.
使用/usr/sbin/sshd -h /etc/ssh/sshd_host_rsa_key就可以了
或者将/etc/ssh/sshd_config中的HostKey配置前面的注释关掉,使用/usr/sbin/sshd -f /etc/ssh/sshd_config也是可以的。
其实原因是因为在编译的时候,没有调整configdata.pm中的sysocnfig目录/etc为/etc/ssh,导致编译出的sshd文件会使用/etc/sshd_config文件作为配置文件。
systemctl start ssh卡住
修改ssh.service即可。
sed -i 's/Type=notify/Type=simple/' /usr/lib/systemd/system/ssh.service
pam问题导致root无法使用密码登录?
其实没啥问题,最终导致root无法使用密码登录的原因是/etc/ssh/sshd_config中的PermitRootLogin yes没有打开