分享

统信UOS系统编译安装openssh8.6

李白 2021-11-9 17:39:00 发表于 已解决 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 3920
前置条件:UOS 1040d 服务器版



查看当前ssh版本 : ssh -V

卸载掉现在的ssh然后在查看一下
sudo apt pugre openssh-server openssh-client


已经看到没有ssh了,接下来开始编译安装openssh
1、首先我们先去官网下载openssh8.6的安装包https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/
下载好后进入到解压目录进行解压 tar -zxvf openssh-8.6.tar.gz



2、解压完成后进入到目录


3、执行下列命令进行编译安装
sudo ./configure     ###结束如下图



sudo make         ###结束如下图


sudo make install          ###结束如下图


提示了 Privilege separation user sshd does not exist
就是提示用户sshd(OpenSSH内置的用户)的权限问题。大概的原因,就是在/etc/passwd中没有找到sshd用户的权限。
vi修改/etc/passwd,在最后追加如下:
sshd:x:74:74rivilege-separated SSH:/var/empty/sshd:/sbin/nologin
然后再去执行sudo make instll     #####完成如下图




需要注意的是,"./configure",是默认安装。默认的命令是安装在/usr/local/bin这个目录,配置文件在/usr/local/etc,而我们最需要的sshd服务程序,安装在/usr/local/sbin目录下。
4、我们现在去启动ssh的服务   sudo /usr/local/sbin/sshd     ####如下图


无报错即可
5、查看ssh服务是否开机  ps -ef |grep ssh


我们可以看到sshd服务启动,netstat查看下22端口有没有被监听   ###如下图


我们可以看到22端口已经被监听
6、小伙伴们可以去看下自己系统的IP地址,连接一下试试


我这里去连接别的服务器是可以的。这时候可以看下ssh的版本了


版本已经为8.6
7、由于编译安装,sshd的配置文件放在/usr/local/etc,为了方便管理我们可以将/usr/local/etc拷贝到/etc/ssh/目录下
mkdir -p /etc/ssh
cp -r /usr/local/etc* /etc/ssh

8、现在管理ssh服务只能通过去绝对路径管理,不可以使用systemctl去管理很是麻烦,接下来我们去配置一下可以用systemctl来管理ssh服务
添加systemd服务配置管理文件
编辑 /usr/lib/systemd/system/sshd.service 添加以下内容
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target
[Service]
ExecStart=/usr/local/sbin/sshd
[Install]
WantedBy=multi-user.target
重启后就可以尝试用systemctl来管理sshd服务啦

版权说明:论坛帖子主题均由合作第三方提供并上传,若内容存在侵权,请进行举报

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系在线客服