Представьте ситуацию, когда Вы сделали работу по своему проекту, закоммитили все изменения, залили их на продакшен и уехали по своим делам (домой, на прогулку или куда-либо ещё). И тут вдруг Вы вспоминаете, что забыли включить в код одну важную функцию. Или вообще, Вы решили проверить по дороге свою работу, открываете Ваш проект с мобильного телефона и видите, что почему-то всё работает не так, как нужно и Вам срочно надо откатить все изменения на предыдущий коммит. Я сталкивался с такой ситуацией и понимаю, что в таких ситуациях действовать нужно незамедлительно, без лишнего шума и информирования начальника проекта :)
Решение заключается в установке одного приложения на свой мобильный телефон и подключения с его помощью к серверу через SSH. А имея SSH подключение, Вы сможете и отредактировать нужную функцию в нужном файле, и и откатить состояние проекта до нужного коммита, а также сделать новый коммит после этого.
Итак, как подключиться к серверу, используя свой мобильный телефон и Termux
Первым делом, устанавливаем на телефон программу Termux. Она доступна для всех современных устройств. Root-доступ не требуется. Программа бесплатна, регулярно обновляется, имеет оценку 4,7 балла и более 1 млн. скачиваний на момент написания данной статьи. Она позволяет использовать на Вашем мобильном телефоне оболочку Linux. Да, Вы поняли абсолютно правильно - полноценный Linux с командной строкой, bash и всеми остальными плюшками в Вашем телефоне! При желании Вы сможете также установить Pyton, PHP, Nodejs и многое другое. А самое главное - Вы сможете использовать полноценный пакет OpenSSH.
После установки приложения выполняем команду:
pkg install openssh -y
Вуа-ля! Теперь можем подключиться к любому серверу и выполнять там любые команды!
Т.к. в экстренной ситуации Вам будет не до поиска хоста, логина и пароля, предлагаю заранее создать аутентификацию по ключу и alias для подключения. После данных манипуляций Вам потребуется только лишь ввести команду алиаса и на Вашем экране отобразится командная строка сервера без необходимости вводить логины и пароли. Для этого заходим в папку .ssh
cd .ssh
Далее, имея перед собой хост, логин и пароль к серверу, выполняем команду:
ssh-keygen -t rsa
На все вопросы просто нажимаем Enter до тех пор, пока перед нами не появится визуальное обозначение нашего ключа, например вот такое:
The key's randomart image is: +---[RSA 2048]----+ | ..Bo.oo.. | | E B o... o | | + * . . o . | | . + o . .. o| | o o S. . +.+| | . o o .. . B=| | . . o oO| | o +oO| | .o*=| +----[SHA256]-----+
Далее вводим команду, предварительно заменим логин@хост на свои значения:
ssh-copy-id -i ~/.ssh/id_rsa.pub логин@хост
После этого появится вопрос о добавлении ключа. Вводим 'yes' и нажимаем Enter.
Затем Вас запросят пароль. Вводим корректный пароль.
После этого Вы увидите сообщение о том, что Ваш ключ успешно добавлен и теперь Вы можете подключиться к серверу без ввода пароля, используя команду вида:
ssh 'логин@хост'
Теперь давайте создадим alias для быстрого запуска данной команды.
Вводим команду:
locate .bashrc
Если у Вас не установлена программа для поиска файлов locate, то Вы увидите сообщение об этом с инструкцией, как её установить. В частности, нужно будет выполнить:
pkg install mlocate -y
Поскольку база данных по файлам обновляется 1 раз в день, то обновим её вручную командой:
updatedb
После этого снова повторим команду поиска файла с настройками:
locate .bashrc
Теперь файл точно будет найден и Вы увидите путь к файлу. Возможно, он будет таким: /data/data/com.termux/files/usr/etc/bash.bashrc
Теперь нам нужно отредактировать этот файл и добавить alias для нашей команды. Используйте команду:
nano /data/data/com.termux/files/usr/etc/bash.bashrc
У Вас наверняка не будет установлен редактор nano, установите его предложенной терминалом командой.
После открытия файла bash.bashrc для редактирования, впишите на новую строку алиас команды подключения. Например:
alias server="ssh 'логин@хост'"
Сохраните файл, используя Ctrl+X. Чтобы ввести эту команду с телефона, на котором отсутствует клавиша Ctrl, а также возможность зажатия клавиш, я рекомендую использовать любую виртуальную клавиатуру для разработчиков, например клавиатуру NextApp, которая также доступна для установки для любых мобильных устройств, или любую другую виртуальную клавиатуру, на которой есть стрелки и клавиши Alt, Shift, Ctrl.
При сохранении файла не забудьте нажать Y и Enter.
Теперь, чтобы перезагрузить терминал, наберите Exit и Enter, а затем заново запустите приложение Termux.
Теперь введите имя Вашего алиаса, например server и Вы увидите командную строку Вашего сервера, на котором Вы сможете использовать всё, что Вам потребуется.
P.S. Если у Вас возникнут трудности с созданием алиаса или с созданием аутентификации по ключу, то Вы можете обойтись и без этого. Имея установленный пакет OpenSSH, вы и так сможете подключиться к серверу с помощью обычной команды:
ssh логин@хост
Или если у Вас отдельный порт для SSH:
ssh логин@хост -p номер_порта
Ключ и alias мы добавили только для Вашего же удобства, чтобы иметь возможность подключаться к серверу с помощью ввода нескольких символов, не имея под рукой никаких данных о логинах и паролях.
Подписывайтесь на группу в ВКонтакте, вступайте в сообщество на Facebook, чтобы всегда быть в курсе актуальных выпусков
Web development blog!