Ubuntu 9.04 升级到 9.10 现在 ssh 无法正常工作

Ubuntu 9.04 升级到 9.10 现在 ssh 无法正常工作

我刚刚使用 (root) 将 (Linode VM) Ubuntu 9.04 升级到 9.10 do-release-upgrade。现在,ssh 无法正常工作。

起初,我只是收到“连接超时”的提示。因此,我访问了 Linode 网站并使用了他们的“lish ajax 控制台”。不确定这与 ssh 有何不同,因为它使用相同的 root 密码(仍然有效)。在那里,我发现文件系统被挂载为只读。我通过执行 修复了这个问题mount -t ext2 -o rw,remount /dev/hda6 /,但仍然没有 ssh 连接。然后我(仍然使用 Linode 网站上的“lish ajax 控制台”)使用命令dhclient eth0,现在我收到的是“连接被拒绝”而不是“连接超时”,这感觉有点像进步,但并不多。

所以,我可以说从 9.04 升级到 9.10 的过程并不顺利。我仍然可以使用 Linode 的“lish ajax 控制台”查看我的所有文件,但我不知道如何让 ssh 工作,而且不出所料,该服务器上的网站也无法再访问。

由于“lish ajax console”使用相同的 root 密码,我猜它仍然有效,而且我到目前为止查找的所有文件都在那里,所以并非一切都丢失了。但是,我必须做些其他事情才能让 ssh 再次工作。有什么想法吗?

ps 好的,谢谢提示,这是目前的结果:

/etc/init.d/ssh status
could not access PID file for sshd
/etc/init.d/ssh start
Starting OpenBSD Secure Shell server sshd
/etc/init.d/ssh status
sshd is running

这听起来不错,但是当我尝试插入时,我得到了:

服务器拒绝分配 pty stdin:不是 tty

我在网上搜索了一下,发现可以尝试这个:

/sbin/MAKEDEV pty
/sbin/MAKEDEV tty

但并没有任何改善。

ifconfig eth0

这确认了 IP 地址(“inet addr:”)是我所期望的。

iptables -I INPUT -p tcp --dport -j ACCEPT
bash: iptables: command not found

我觉得有点奇怪,它居然没有听说过 iptables,但我知道什么呢?我在 auth.log 中所能找到的只有这个,不是现在的,而是几个小时前的。

root@localhost:/var/log# tail -f /var/log/auth.log                                                  
Apr 16 15:05:50 li9-111 sshd[10704]: pam_unix(sshd:auth): authentication failure; logname= uid=0 eui
d=0 tty=ssh ruser= rhost=60.10.58.156  user=root                                                    
Apr 16 15:05:52 li9-111 sshd[10704]: Failed password for root from 60.10.58.156 port 32776 ssh2     
Apr 16 15:05:58 li9-111 sshd[10706]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=60.10.58.156 user=root                                                    
Apr 16 15:06:00 li9-111 sshd[10706]: Failed password for root from 60.10.58.156 port 33096 ssh2     
Apr 16 15:06:03 li9-111 sshd[10708]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=60.10.58.156  user=root                                                    
Apr 16 15:06:05 li9-111 sshd[10708]: Failed password for root from 60.10.58.156 port 33588 ssh2     
Apr 16 15:06:11 li9-111 sshd[10710]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=60.10.58.156  user=root                                                    
Apr 16 15:06:14 li9-111 sshd[10710]: Failed password for root from 60.10.58.156 port 33927 ssh2     
Apr 16 15:06:16 li9-111 sshd[10712]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=60.10.58.156  user=root                                                    
Apr 16 15:06:18 li9-111 sshd[10712]: Failed password for root from 60.10.58.156 port 34404 ssh2 

在系统日志中我所能找到的只有以下内容:

root@localhost:/var/log# tail -f /var/log/syslog

Apr 16 15:05:19 li9-111 mysqld: Active alarms: 0                                                  
Apr 16 15:05:19 li9-111 mysqld: Max used alarms: 1                                                  
Apr 16 15:05:19 li9-111 mysqld: Next alarm time: 0                                                  
Apr 16 15:05:19 li9-111 mysqld:                                                                     
Apr 16 15:05:19 li9-111 mysqld: Begin safemalloc memory dump:                                       
Apr 16 15:05:19 li9-111 mysqld:                                                                     
Apr 16 15:05:19 li9-111 mysqld: End safemalloc memory dump.                                         
Apr 16 15:05:48 li9-111 dhclient: DHCPREQUEST of 67.18.176.111 on eth0 to 72.14.180.19 port 67      
Apr 16 15:05:48 li9-111 dhclient: DHCPACK of 67.18.176.111 from 72.14.180.19                        
Apr 16 15:05:48 li9-111 dhclient: bound to 67.18.176.111 -- renewal in 35362 seconds.  

最后,

root@localhost:/var/log# netstat -ntlp                                                              
Active Internet connections (only servers)                                                          
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      891/sshd            
tcp6       0      0 :::22                   :::*                    LISTEN      891/sshd    

非常感谢大家迄今为止提供的所有帮助,任何进一步的建议都将不胜感激。最后说明:为了防止上述某些操作在重新启动之前不会生效,我尝试了重新启动,结果是倒退了一步(尝试 ssh 时没有响应)。因此,我回到顶部并尝试:

root@localhost:~# /etc/init.d/ssh status                                                            
 * could not access PID file for sshd                                                               
root@localhost:~# /etc/init.d/ssh start                                                             
 * Starting OpenBSD Secure Shell server sshd                             [ OK ]                     
root@localhost:~# /etc/init.d/ssh status                                                            
 * could not access PID file for sshd            

这似乎有点倒退。无论如何,任何帮助或建议都会受到感谢。

答案1

首先确保 ssh 正在运行,您可以通过以下方式执行此操作

/etc/init.d/ssh status

如果它没有运行,请使用相同的命令来启动它,但将状态替换为启动。

如果这不起作用,请检查您的接口配置以确保您连接到正确的 IP。

ifconfig eth0

由于您使用 dhcp 获取 IP,因此这种情况可能会发生变化。

您的防火墙有可能阻止了它,您可以通过以下方式打开端口 22(默认情况下应该打开):

iptables -I INPUT -p tcp --dport 22 -j ACCEPT

/var/log/auth.log and /var/log/syslog最后,在尝试连接时发布内容。

答案2

好吧,看来问题出在 Linode 上。在虚拟机的配置文件中,它的“内核”设置为“Latest 2.6 Legacy (2.6.18.8-linode22)。我不得不将其更改为“Latest 2.6 Paravirt(2.6.38-linode31)”,然后 ssh(以及从此服务器提供的网站)全部恢复。呼!

我猜想 linode 配置的内核仅适用于 9.10 之前的 Ubuntu 版本。坦率地说,我以为操作系统升级过程会解决该问题,但是我并不真正了解 VM 配置文件和 VM 操作系统如何交互,所以我遇到麻烦也就不足为奇了。

我认为也许可以吸取的教训是,如果你让你的服务器操作系统过时到这种程度,那么升级路径所需的一些奇怪的东西并不总是在最新的文档中,因为我的天啊,谁还在使用那么老的版本。尽管如此,在尝试升级到下一个较新的操作系统之前,我必须深吸一口气,思考一下。

我想对于我的下一个服务器故障问题,我需要询问服务器操作系统升级策略......

相关内容