在 ubuntu 上更新 Openssh 失败

Posted

技术标签:

【中文标题】在 ubuntu 上更新 Openssh 失败【英文标题】:Updating Openssh on ubuntu fails 【发布时间】:2016-09-19 19:36:00 【问题描述】:

我有一台运行 Ubuntu 14.04LTS 的 EC2 (AWS Amazon)。尝试将 Openssh 从 6.6p 更新到 6.9,唯一的方法是从源 (openssh.com) 编译源代码,因为 Canonical 不提供最新版本,即使在后向端口中也是如此。

但是,在编译代码之后,使用传统的方法(.confiugre -- 跳过配置目录 --,make 和 make install),我不能再访问我的实例了。显示错误:Permission Denied (public key)

当然,我的实例仍在工作,因为我之前没有关闭会话以进行回滚,将新的守护进程(更新的 sshd 文件)更改为旧的。

无论如何,我需要进行此更新。而且,我在这里寻求可以帮助我的人,如何做到这一点。

任何帮助将不胜感激。非常感谢。

已修复

固定升级 Ubuntu 版本,从 14.04 LTS 到 16.04 LTS (Xenial)。这个版本有OpenSSH 7.2。感谢所有试图帮助我的人。

【问题讨论】:

当您尝试连接到新的sshd 时,尝试使用ssh -v 提高输出的详细程度(或者使用-vv-vvv 甚至更高),输出将显示您正在尝试哪些身份验证方法以及原因。 @Tim,感谢您的回答。我通过两个连接比较打印的调试(-v)来分析这一点,新的和旧的都知道错误在哪里。两者完全相同,当然,守护进程名称除外。 如果实例上仍有打开的 ssh shell,请尝试检查 /var/log/auth.log 是否存在 sshd 错误。 Openssh "1:6.6p1-2" 已经包含一些安全修复。如果您坚持编译新的 sshd,为什么不在另一个 t2.small 实例中进行编译以排除所有可能的问题。在最坏的情况下,您仍然可以将 t2.small EBS 根安装在另一个 EC2 实例中并检查问题所在。 谢谢大家。但我的时间不多了。我通过升级 Ubuntu 版本解决了这个问题。 Xenial 拥有最新版本的 Openssh。 【参考方案1】:

安装新版本的sshd,目标前缀目录为/usr/local

更改 /usr/local/etc/ssh/sshd_config 以使用:

“端口 2222”而不是 22 “Loglevel DEBUG”而不是默认值

使用 -d 标志运行 /usr/local/sbin/sshd

使用指定端口 2222 的 ssh 客户端连接到主机,日志记录应该会为您提供一些线索,说明它为什么会损坏,可能是一些它不喜欢的权限

【讨论】:

以上是关于在 ubuntu 上更新 Openssh 失败的主要内容,如果未能解决你的问题,请参考以下文章

SSH连接Ubuntu虚拟机失败:The remote system refused connection

ubuntu 12.04 安装 openssh-server 失败,请问怎么该弄?

Ubuntu 16.04升级OpenSSH

Ubuntu 16.04升级OpenSSH

Ubuntu 16.04升级OpenSSH

在Ubuntu上开启SSH服务并查看IP地址