从源代码构建时无法识别服务 ssh

从源代码构建时无法识别服务 ssh

因此,我有一个运行 14.04LTS 的 Web 服务器,因为这是我可以通过 VPS 获得的最新 Ubuntu 发行版。我一直尝试通过以下命令构建源代码来安装 OpenSSH 7.2p2:

wget http://mirrors.sonic.net/pub/OpenBSD/OpenSSH/portable/openssh-7.2p2.tar.gz
tar -zxvf openssh-7.2p2.tar.gz
cd openssh-7.2p2
./configure
sudo make
sudo make install

当我输入时,ssh -V我得到的输出是:OpenSSH_7.2p2, OpenSSL 1.0.2h 3 May 2016,但当我尝试时,service ssh我得到的是ssh: unrecognized service。有什么想法我遗漏了什么吗?

答案1

因此,根据 Jakuje 提供的信息,我找到了解决方案。仅当您没有选择升级到较新的 LTS 版本,但需要升级 OpenSSH 并且找不到具有所需版本的 ppa 时才应使用此选项。

首先通过 安装 openssh-server sudo apt-get install openssh-server。安装完成后,将/etc/init/ssh.conf和复制/etc/init.d/ssh到安全的地方。现在通过sudo apt-get remove --purge openssh-server和卸载 openssh-server 和 openssh-client(由 openssh-server 安装) sudo apt-get remove --purge openssh-client。如果您计划使用权限分配,请按照此处的说明操作:https://github.com/openssh/openssh-portable/blob/master/README.privsep。现在执行以下操作:

wget http://mirrors.sonic.net/pub/OpenBSD/OpenSSH/portable/openssh-7.2p2.tar.gz
tar -zxvf openssh-7.2p2.tar.gz
cd openssh-7.2p2
./configure --prefix=/usr --sysconfdir=/etc/ssh
sudo make
sudo make install

此后,将之前复制的文件放回原处。重新启动系统时,该服务应该会被识别并自动启动!

答案2

您安装了openssh二进制文件,但没有安装它的 Upstart 服务(连接 ubuntu 和 openssh 服务的粘合剂)。

您可能还安装了与 Ubuntu 中使用的路径不同的文件,因此获取服务文件(/etc/init.d/ssh) 不能完全解决问题(但可以给你一些指导)。

不管是什么让你从源代码安装 openssh,这几乎都不是一个好主意,你最好将 Ubuntu 更新到最新的 16.04。

相关内容