前置条件:UOS 1040d 服务器版
查看当前ssh版本 : ssh -V
卸载掉现在的ssh然后在查看一下 sudo apt pugre openssh-server openssh-client
已经看到没有ssh了,接下来开始编译安装openssh 下载好后进入到解压目录进行解压 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服务啦
|