我真的很糟糕的问题。 这是背景:
我有一个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访问超级用户,则可以执行以下操作:
/etc/cron.hourly (或者VPS系统上的相应文件),然后chmod it 0755使其可执行。 总的想法是让cron捡起来为你做工作。 如果你不想等待,你可能会把一个文件放到/ var / spool / cron /中,让cron执行一个安装并启动sshd的脚本。 我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,…)。