问题与sshd – 安装是remotelly

我真的很糟糕的问题。 这是背景:

我有一个vps,我尝试使用svn,但它糟糕透顶。 我发现在一个网站,问题消失,如果你重新安装SSH客户端,我做到了。 而当我在服务器上时,问题已经解决了。

问题是:事实certificate,现在我不能在该服务器上login。 它说ssh

connect to host myserver.com port 22: Connection refused 

我怀疑,当我重新安装SSH客户端sshd服务器被卸载,结果是 – 没有login。

我所拥有的是FTP以及PHP,我知道root密码。 有什么办法可以安装openssh-server吗?

我试过以下内容:

 echo "MYPASSWORD" | /usr/bin/sudo -u root -S apt-get install -q openssh-server 

如果我在我的本地机器terminal执行它正在工作,它试图安装sshd,但是当我尝试运行它与PHP与:

 exec('echo "MYPASSWORD" | /usr/bin/sudo -u root -S apt-get install -q openssh-server', $lines); echo $lines; 

它什么都不返回。 我已经尝试过ls -la,但结果是一样的 – 在terminal上没问题,但是从PHP不起作用。

你能给我任何build议如何解决这个问题。 它看起来像我需要变成一个黑客:)

如果您通过ftp访问超级用户,则可以执行以下操作:

  1. 将sshd重新安装所需的软件包放到某个目录中,例如/ root / sshd_reloaded。
  2. 准备一个脚本,安装该软件包并启动sshd恶魔。
  3. 将软件包通过FTP传输到适当的位置,然后将脚本传输到/etc/cron.hourly (或者VPS系统上的相应文件),然后chmod it 0755使其可执行。 总的想法是让cron捡起来为你做工作。 如果你不想等待,你可能会把一个文件放到/ var / spool / cron /中,让cron执行一个安装并启动sshd的脚本。
  4. 等待cron拿起新文件并执行作业。
  5. login到您的VPS,更改根密码(通过FTP进入明文),不再犯罪;)。

我build议先在本地机器上尝试它 – 这将使debugging更容易。 只有当你确定所有元素都可以工作时,在远程主机上执行。

整个技巧取决于能够以远程方式远程FTP到非chrooted环境(这不是我推荐configurationFTP服务器的方式)的能力。

我不认为你有更多的select,但尝试重新启动您的VPS。

如果这不能解决问题,请将系统引导至恢复模式(如果可以的话),并查看日志和sshdconfiguration文件,以查看是否可以帮助缩小问题的范围。

否则,你将不得不让你的VPS提供商帮助。

除非你的Apache用户具有sudo权限,否则你以root身份运行Apache,对不起,你不能像这样安装ssh。 重新安装Linux上的东西也很less有帮助; 如果有的话,你应该需要重新启动sshd进程,如果没有帮助,看看它的configuration文件是否有问题。

一种可能的方法是在本地主机上修改/ etc / sudoers文件以包含Apache用户的sudo权限,然后将该file upload到服务器(如果可以以root用户身份连接),然后再次运行脚本。 但是,再次,我怀疑这并没有帮助,即使你在这个成功,因为问题可能在你的configuration文件。

在为Apache用户授予sudo特权之后,还可以尝试将脚本修改为sudo -u root -S /etc/init.d/ssh restart

哦! 还有一件事。 如果你可以作为根连接,你也可以下载日志文件,看看他们是否揭示了为什么你的sshd不启动或为什么它倒下了。

有可能有办法login到你的服务器,但这些都是我在这里没有讨论的方法,我认为(包括PHP贝壳,connectback壳等)。

我同意上面的答案,你需要在你的vps上的某种远程控制台。 许多提供者都支持这些方法(重新启动到resque模式,给出一个web kvm,…)。