У меня действительно серьезная проблема. Вот предыстория:
У меня есть vps, и я пытался использовать svn, но это плохо. На одном сайте я обнаружил, что проблема исчезает, если вы переустановите клиент ssh, и я это сделал. И пока я был на сервере, проблема была исправлена.
Проблема: оказывается, теперь я больше не могу войти на этот сервер. Он говорит ssh:
connect to host myserver.com port 22: Connection refused
Я подозреваю, что когда я переустановил клиент ssh, сервер sshd был удален, и в результате - нет входа в систему.
У меня есть FTP и PHP, и я знаю пароль root. Есть ли способ установить openssh-server agan?
Я пробовал следующее:
echo "MYPASSWORD" | /usr/bin/sudo -u root -S apt-get install -q openssh-server
и если я запускаю его на своем локальном машинном терминале, он работает, и он пытается установить sshd, но когда я пытаюсь запустить его с помощью php с помощью:
exec('echo "MYPASSWORD" | /usr/bin/sudo -u root -S apt-get install -q openssh-server', $lines);
echo $lines;
он ничего не возвращает. Я пробовал с ls -la, но результат тот же - на терминале все в порядке, но с PHP это не работает.
Не могли бы вы дать мне совет, как решить эту проблему. Похоже, мне нужно превратиться в хакера :)
Я не думаю, что у вас есть другой вариант, кроме как попробовать перезапустить свой VPS.
Если это не решит проблему, загрузите свою систему в режим восстановления (если можете) и просмотрите свои журналы и файл конфигурации sshd, чтобы узнать, могут ли они помочь сузить проблему.
В противном случае вам придется обратиться за помощью к своему провайдеру vps.
Если у вас есть доступ как root через ftp, вы можете сделать следующее:
/etc/cron.hourly
(или эквивалент в вашей системе VPS) и chmod 0755, чтобы сделать его исполняемым. Общая идея - заставить cron подхватить его и сделать всю работу за вас. Если вы не хотите ждать, вы, вероятно, можете поместить файл в / var / spool / cron /, чтобы cron выполнил сценарий, который устанавливает и запускает sshd.Я бы рекомендовал сначала попробовать это на локальной машине - это упростит отладку. Только когда вы уверены, что все элементы работают, делайте это на удаленном хосте.
Весь трюк зависит от возможности удаленного доступа к FTP с правами root в среде без chrooted (что я бы не рекомендовал настраивать FTP-сервер).
К сожалению, вы не можете установить ssh таким образом, если у вашего пользователя Apache нет прав sudo или если вы не используете Apache от имени root. Также редко помогает переустановка в Linux; во всяком случае, вам необходимо перезапустить процесс sshd, и если это не поможет, посмотрите, есть ли что-то не так с его файлом конфигурации.
Одним из возможных способов МОЖЕТ быть изменение файла / etc / sudoers на вашем локальном хосте, чтобы он содержал права sudo для вашего пользователя Apache, затем загрузите этот файл на свой сервер (если вы можете подключиться к нему как root) и попробуйте снова запустить свой скрипт. Но опять же, я подозреваю, что это не поможет, даже если вам это удастся, поскольку проблема может быть в ваших файлах конфигурации.
Вы также можете попробовать изменить свой скрипт, чтобы он был sudo -u root -S /etc/init.d/ssh restart
после того, как вы предоставите права sudo пользователю Apache.
Ой! Еще кое-что. Если вы можете подключиться к нему как root, вы также можете загрузить файлы журнала и посмотреть, показывают ли они, почему ваш sshd не запускается или почему он упал.
Могут быть способы войти на ваш сервер, но я думаю, что это методы, которые здесь не обсуждаются (содержащие оболочки php, оболочку подключения и т. Д.).
Я согласен с приведенным выше ответом, что вам понадобится какая-то удаленная консоль на вашем vps. Многие провайдеры поддерживают эти методы (перезагрузка в режиме восстановления, предоставление веб-kvm, ...).