Как получить доступ к серверу через SSH, имея только виртуальный FTP аккаунт Сегодня попался довольно интересный случай в саппорте, где пришлось отлаживать работу приложения на PHP, имея только виртуальный FTP аккаунт. В качестве примера я буду называть сайт www.example.com и FTP аккаунт supportuser@example.com, ограниченный корневой директорией исходников сайта. Сервер, на котором расположен сайт, работает под управлением WHM/cPanel. Моя цель - получить доступ к логам вебсервера (которые находятся вне корневой директории сайта), чтобы понять причину глюков в работе приложения. В корне сайта валяется файлик error_log, но его содерживое не содержит ничего полезного, его происходит ошибка уровнем выше, чем интерпретатор PHP. Имея FTP доступ, я заливаю phpshell в корень сайта и проверяю под каким пользователем сервер выполняет php скрипты. Code: phpshell> id uid=500(examplec) gid=500(examplec) groups=500(examplec) Если имя пользователя состоит из 8 первых символов из названия домена, то это косвенно указывает на стандартную конфигурацию WHM/cPanel, а следовательно интерпретатор PHP на этом сайте работает в режиме CGI/FastCGI. А еще это означает, что мы имеем возможность изменять файлы, которые принадлежат пользователю examplec. Проверяем, имеет ли этот пользователь валидный shell Code: phpshell> grep '^examplec:' /etc/passwd examplec:x:500:500::/home/examplec:/bin/bash Наличие /bin/bash в последнем поле подтверждает, что у пользователя examplec есть рабочий шелл. В принципе уже сейчас можно логиниться через SSH на examplec@example.com, но я не знаю пароль пользователя examplec (у меня есть только пароль от виртуального аккаунта supportuser@example.com). Чтобы попасть на сервер, мне нужно воспользоваться возможностью логиниться через публичный ключ SSH (я еще не встречал сервер, где бы была отключена такая возможность). Для этого я создаю в домашней директории пользователя директорию .ssh и скачиваю в нее свой открытый ключ SSH. Code: phpshell> mkdir ~/.ssh phpshell> wget -q -O ~/.ssh/authorized_keys http://sharedsite.com/my-ssh-public-key Вот теперь можно логиниться через SSH. Автор: Andrey Tataranovich среда, 29 августа 2012 г. http://blog.tataranovich.com/2012/08/ssh-ftp.html
Это хороший способ, известен давно, у него несколько применений, была хорошая статья https://rdot.org/forum/showthread.php?t=589