在 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