[已解决]ssh版本的问题

有一台机器,装的是 13.1,里面的 openssh 版本太低,是 6.2,想升级到 7.5
所以下载了 7.5 的包,然后./configure make make install 安装上了,在机器上查看使用的 ssh 版本是新安装的 7.5
但是如果从其他机子用 telnet 查看(即 telnet IP 22)的话 依然是 6.2
哪位知道如何解决?
谢谢!

你编译安装到哪儿了?openssh 包里不止是 openssh 的源码,还有对应的打包者写的脚本。rpm -ql openssh 可以看到全部包里的文件。

要是 ugly hack 的话就替换对应位置的文件,或者改脚本指向新位置。

正确的做法是用 obs branch 一下 openssh 包然后编译对象改成 13.1。

从我的 iPhone 发送,使用 Tapatalk

安装到了 /usr 下,您能不能详细说一下,我不太懂您说的

哈喽,这里先要讲一下 openssh 的工作流程:
在 telnet 127.0.0.1 22 或者 ssh 过去时,目标主机 127.0.0.1 上的 22 端口是由程序 sshd (ssh daemon) 监听的。您这里 telnet 后发现版本没有变化是因为编译安装 openssh 后新的 sshd 并没有运行,运行的还是原来的 sshd 。
因此您需要先停止目标主机上现在运行的 sshd 服务:(该操作会导致所有正在通过 ssh 连接的用户下线)

sudo systemctl stop sshd.service

然后以 root 权限运行新安装好的 openssh-7.5 中的 sshd 程序。(当然,在运行前根据需要把它的配置文件 sshd.conf 修改好)。

另外,您还可以在 openssh-7.5 的 sshd.conf 中修改默认的 22 端口(比如改为 23 端口),然后 ** 不执行 ** 上面的命令终止原来的服务,而是直接执行 openssh-7.5 中的 sshd ,这样的话由于监听端口不冲突,可以新的旧的两个并存。

至于这些文件都在哪里,您可以参考编译安装时最终输出的日志里找到。


Best wishes

1赞

非常感谢!搞定了!