我有一台 Ubuntu 18.04 服务器。我安装了openssh-server
和openssh-client
。根据apt
,两个软件包的安装版本都是7.6p1-4ubuntu0.1
,但 ssh-server ( sshd
) 的运行版本是OpenSSH_6.7p2 Ubuntu-4p1
。客户端 ( ) 的版本ssh
是正确的。
我已经重启了服务器几次,但运行的版本仍然是一样的。
最近我重新安装了 OpenSSH,因为我的客户端无法连接到版本 6.7 的服务器。请参阅:登录后 SSH 连接立即关闭
它可以工作一段时间,但后来突然切换回6.7版本。(安装的包仍然是7.6)
有人能帮我解决这个问题吗?我不明白运行版本与软件包版本有何不同。
编辑:
dpkg -l | grep openssh
这是评论中要求的命令的输出:
ii openssh-client 1:7.6p1-4ubuntu0.2 amd64 secure shell (SSH) client, for secure access to remote machines
ii openssh-server 1:7.6p1-4ubuntu0.2 amd64 secure shell (SSH) server, for secure access from remote machines
ii openssh-sftp-server 1:7.6p1-4ubuntu0.2 amd64 secure shell (SSH) sftp server module, for SFTP access from remote machines
可能还值得注意的是,当我尝试登录时,系统日志中出现以下错误:
sshd[15010]: ad6cd950 ip 00007f50883835a1 sp 00007ffcfb4f35f8 处发生段错误,libc-2.27.so[7f50881f5000+1e7000] 中的错误 4
编辑2:
删除 OpenSSH 并重新安装后在这个答案中推荐,它工作了一个小时。重启或更新后没有发生这种情况。实际ssh.service
似乎不再运行。通过运行ps -o unit -p <process id>
,我发现该进程已由启动env.service
。我猜这是不正确的,因为在全新安装后,sshd
已由启动ssh.service
。但我如何才能改变这种行为?我不知道,该怎么env.service
办。
编辑3:
/usr/sbin/sshd
重新安装后不到一小时,某些东西就不断被旧版本替换openssh-server
。我可以看到 MD5 哈希值已被更改。
答案1
1)备份你的配置文件
2)通过 apt openssh-server 删除
3)重启
4)运行 apt update
5)运行 apt-get autoremove
6)重新安装 openssh-server。(对于 Ubuntu 18.04,版本为 1:7.6)