Настройка SSH
Если необходимо добавить вход в SSH сразу по root:
Как настроить вход по Root в SSH
Смена порта SSH
Так как по умолчанию работа ssh настроена на порт 22, то пользоваться сервером становится не безопасно. Поэтому стоит сменить порт!
С помощью nano отредактируйте документ sshd_config, введите команду:
раскомментируйте и поменяйте значения Port на необходимый:
Вход только по ключу SSH
С помощью nano отредактируйте документ sshd_config, введите команду:
Поменяйте значения PasswordAuthentication с yes на no:
Вот и все! Больше полезных статей и инструкций читайте в разделе Статьи и Хаки Linux. Оставайтесь вместе с сайтом Android +1, дальше будет еще интересней!
Премиум-версия Termius:
- У вас есть 14-дневная бесплатная пробная версия.
- Та же подписка действительна для всех мобильных устройств и настольной версии.
- Вы можете синхронизировать настройки и учетные данные сразу на всех устройствах, плюс эта синхронизация полностью зашифрована с помощью AES-256.
- Вы можете заблокировать доступ к учетным данным через системы безопасности Apple, используя Touch ID или Face ID.
- Вы можете активировать двухфакторную аутентификацию.
- Имеется поддержка двух окон SFTP.
- Вы можете использовать автозаполнение.
- Он имеет поддержку фоновой сессии.
- Вы можете установить пользовательские переменные среды.
- Вы можете удалить неиспользуемые порты.
И это будут основные характеристики премиум-версии. Следует отметить, что если нам нужна поддержка SFTP, у нас должна быть премиум-версия, так как в бесплатной версии у нас нет доступа к этому протоколу.
Как вы видели, у нас есть три приложения, которые действуют как клиенты FTP, FTPES и SFTP, чтобы легко подключаться к нашим серверам (кроме Termius, который поддерживает только SFTP). Благодаря этим приложениям мы сможем получить доступ ко всем нашим файлам из любого места очень легко и безопасно, если вы используете для соединений протоколы FTPES или SFTP.
Дизайн
Для достижения желаемой модульности разобьем весь код на отдельные «функции».
Например, у нас будет функция для выполнения SSH команд на устройстве _run-script, которая ожидает имя хоста и сам текст для выполнения. Всю логику для генерации самих команд выносим в отдельные модули. Скажем, для определения семейства системы мы будем использовать функцию _get-family. Она по сути посто генерирует нужную команду и выполняет _run-script.
Такая же история с _run-upgrade, которая будет использовать _get-family для определения семейства системы и будет запускать _run-script для запуска обновления. В общем, тут работают все те же правила, которые работают в любом языке программирования.
Я решил вынести итерации в отдельный «модуль». Поэтому у нас имеется _iterate-upgrades, которые по-просту запускает _run-upgrade для каждого хоста в списке.
Инвенторные данные будем хранить в отдельном json’чике. Можно в дальнейшем расширить функционал, но сейчас это просто словарик с адресами.
Забегая немного вперед скажу, что все удалось довольно легко реализовать.
А, забыл сказать. Очевидно данный «фреймворк» будет конкурировать со всеми именитыми решениями, в том числе и с Salt. Поэтому я назвал свой проект Sugar. В одноименном файлике будет храниться некое подобие UI для запуска заданий на определенных хостах.
Ладно, пройдемся по всем файликам снизу вверх.
Добавление пакетов
Вы можете использовать обычный команды для управления пакетами в среде iSH.
# Update the package lists apk update # Upgrade existing installed packages apk upgrade # Install SSH apk add openssh # Remove SSH apk del openssh
Имейте в виду, что по умолчанию iSH использует собственные репозитории пакетов. Это позволяет приложению пройти проверку в App Store, гарантируя его полную автономность.
Ты можно переключиться на официальные репозитории Alpine Linux, если хотите. Это дает вам доступ к полному списку программного обеспечения Alpine. Многие пакеты будут иметь более новые версии в основных репозиториях Alpine, чем те, которые предлагаются в репозиториях iSH.
grep -v "file:///ish/apk/" /etc/apk/repositories | dd of=/etc/apk/repositories bs=4194304 echo https://dl-cdn.alpinelinux.org/alpine/v3.12/main >> /etc/apk/repositories echo https://dl-cdn.alpinelinux.org/alpine/v3.12/community >> /etc/apk/repositories
Выполните приведенные выше команды, чтобы заменить содержимое iSH псевдо-файловая система с репозиториями, предлагаемыми Alpine Linux. Затем вам нужно будет запустить чтобы получить новые списки пакетов.
FTP и SSH клиент for Mac OS CODA2
Собственно найти CODA 2 можно в APP Store, и на момент написания материала программа стоила $74,99. Платность – это, конечно, минус, но все же это вполне посильные деньги для тех, кто занимается разработкой сайтов. Если приобретать программу нет желания, но посмотреть «что оно такое» охота, то есть возможность загрузить Trial версию, которая прослужит вам 7 суток. Собственно страница загрузки программы находится по URL: https://panic.com/coda/buy.html
Там достаточно кликнуть по имени архива и загрузка начнется автоматически. После загрузки нужно распаковать архив и инсталлировать пакет. Русского зыка программа не имеет, но освоить ее не будет сложно тем, кто плотно имеет дело с кодом сайтов. Собственно, давайте рассмотрим основные возможности программы CODA 2.
После первого старта программы вы увидите большую иконку в виде «+», нажатие на которую является отправной точкой для настройки FTP/SSH клиента. После нажатия на «+» перед собой вы увидите четыре кнопки, значение которых будет лучше всего разъяснить сразу, чтобы в будущем не возвращаться к этому:
- site – эта вкладка позволяет настраивать доступ по протоколу FTP;
- terminal – благодаря этому полю можно настроить SSH соединение (к слову, логин, пароль и адрес сервера для подключения по SSH совпадают с доступом по FTP; при заполнении вкладки site все данные также будут перенесены и сюда);
- source – это поле нужно для работы с Git (рассматривать более подробно не будем, т.к. тут необходима отдельная статья), может быть использовано при создании площадки несколькими веб-мастерами;
- database – данное поле служит для подключения к базе данных (подключение может быть выполнено к виртуальному и локальному хостингу).
Далее необходимо заполнить текстовые поля на вкладке SITE, и рассмотрим каждое поле более подробно:
- nickname – произвольное название вашего ресурса;
- protocol – проток для соединения с сервером (FTP или SSH);
- server – адрес сервера FTP или SSH, с которым будет производиться соединение;
- user name – имя FTP/SSH пользователя;
- password – пароль FTP/SSH пользователя;
- root URL – это ссылка на страницу вашего сайта (но если заполнить, то впоследствии будет сделан снимок страницы вашего сайта, а из него ПО сделает уже привлекательную пиктограмму);
- local URL – если ваш ресурс расположен на локальном сервере, то это поле предназначено для указания его адреса;
- remote root – в этом поле можно указать путь к каталогу, где расположен сайт (удаленный сервер для подключения по FTP/SHH);
- local root – если ваша площадка расположена на локальном сервере, то в этом поле прописываем путь к каталогу.
Как только заполните все поля, нажимайте на «Save» и ваш сайт отобразится в виде пиктограммы. Для соединения по FTP/SHH достаточно пару раз кликнуть по пиктограмме сайта. Теперь в правой колонке вы увидите ваш сайт на удаленном сервере, по центру – файлы на локальном сервере, а левую часть можно настраивать по своему усмотрению. Сюда, например, можно поставить: частопосещаемые файлы и папки, поиск по файлам и прочее. Если открыть, к примеру, файл index.php на удаленном сайте, то вы увидите, что автоматически откроется функциональный редактор.
Sugar UI
Файл тут.
Это вершина всего этого бутерброда. Здесь мы открывает файл с инвентори и вытаскиваем из него словарь.
Далее мы достаем все ключи (имена хостов) и предлагаем пользователю выбрать какие из них его сейчас интересуют. Далее для каждого имени достаем адрес для подключения и собираем все это в список.
Даем пользователю выбрать одну из операций. Пока что это только обновление OS. Ну и запускаем наш шорткат для обновления хостов из списка.
Далее небольшой пример работы. К сожалению, все мои хосты уже обновлены, но скрипт наш фреймворк работает корректно.
Расширяем функционал
Теперь я покажу как пользователи могут легко добавлять свой функционал. Например, мы хотим собирать аптайм с серверов. Нет ничего проще! Sugar позволяет сделать это. Все что нам нужно, это создать два файла.
Файл тут.
Это мы уже видели. Почти полная копия _get-family, различается только команда для выполнения.
_iterate-uptime
Файл тут.
Опять же, принцип нам знаком. Единственное отличие здесь это сбор всех результатов выполнения команд в один репорт.
Далее нам нужно лишь внести изменения в Sugar UI.
И вуаля! Теперь мы можем собирать еще и аптайм!
Серьезно?
Ладно-ладно, довольно сложно найти оправдание такой «дичи», но давайте попробуем взглянуть на это с другой стороны.
- Да, это не Salt и не Ansible, но это запускается на вашем телефоне! И оно работает!
- Более того, мы можем запускать это через Siri ) Или по какому-то событию, например. Если включить фантазию еще больше, то можно, скажем, за 2 минуты настроить SMS уведомления.
- Это самая настоящая автоматизация и с этим сложно спорить. Порог вхождения просто минимальный. Функционал не богат, но достаточен. Как вариант можно запускать уже заранее написанные скрипты прям на хостах. Хочу подчеркнуть, что мы имеем возможность выполнять bash скрипты, я же по сути просто отправлял отдельные команды.
- Нам удалось реализовать модульность, что действительно позволяет расширять функционал.
- Это был довольно занятное упражнение, которое заставило меня хорошенько подумать над дизайном перед реализацией. Однако результат меня удивил и приятно порадовал.
Автоматизируйте, друзья мои! )
Подключение по SSH по ключу, без пароля
Для удобного подключения по SSH (и многим другим сервисам) без ввода пароля можно использовать ключи.
Нужно создать пару ключей: приватный (закрытый) ключ и публичный (открытый) ключ. Приватный ключ нужно хранить и никогда никому не показывать. Публичный ключ можно показывать всем и распространять свободно.
Эти ключи связаны друг с другом таким образом, что зашифровав информацию одним ключом, расшифровать ее можно только другим. Например, если ваш друг зашифрует письмо вашим публичным ключом, то прочитать его сможете только вы, потому что для этого нужен ваш приватный ключ. И наоборот: если вы зашифруете что-то своим приватным ключом, то расшифровать его можно только вашим публичным ключом. Так как публичный ключ доступен всем, любой может расшифровать это сообщение. Но он может быть уверен, что сообщение пришло именно от вас. В этом заключается идея цифровой подписи.
Генерация ключей
Создадим пару ключей:
Программа запустится и спросит, куда сохранять ключи:
Нажмите Enter для сохранения в стандартное место — директорию .ssh/id_rsa в вашей домашней директории.
Программа запросит passphrase. Это вроде пароля для ключа. Можно просто нажать Enter и пропустить этот шаг. Или ввести passphrase — тогда его нужно будет вводить каждый раз, когда используется ключ.
Ключи созданы:
Теперь у вас есть два файла:
- ~/.ssh/id_rsa — приватный ключ. Никогда никому и никуда не передавайте его!
- ~/.ssh/id_rsa.pub — публичный ключ. Спокойно распространяйте его.
В Windows можно использовать в подсистеме Ubuntu for Windows или в командной строке Git for Windows.
Загрузка публичного ключа на сервер
Нужно добавить публичный ключ на сервер в файл ~/.ssh/authorized_keys. Самый простой способ — запустить на локальной машине команду для копирования ключа:
Другой способ — подключиться по паролю, открыть в редакторе файл ~/.ssh/authorized_keys и добавить в конец текст из вашего файла ~/.ssh/id_rsa.pub.
Теперь при подключении пароль запрашиваться не будет1.
После включения соединений по ключу рекомендуется отключить подключение по паролю.
Смартфон SSH Клиенты
Под капотом все мобильные клиенты SSH действительно позволяют вам делать то же самое: SSH на сервер. Их отличает то, как они улучшают опыт использования терминала на мобильном устройстве. Ваша клавиатура ограничена на мобильном телефоне; он разработан для текстовых сообщений и набора коротких сообщений, а не для кодирования. Даже печатать» и «», Это требует трех нажатий кнопок на стандартной клавиатуре iOS.
Хорошие мобильные клиенты SSH облегчают этот процесс. Например, Termius очень популярный бесплатный SSH-клиент для iOS и Android. Интерфейс самого терминала имеет обычную клавиатуру, но над ним находятся элементы управления, которые было бы неудобно печатать на мобильной клавиатуре. Вы часто используете клавиша-модификатор, поэтому у Термиуса есть кнопка, , Команды часто интенсивно используют тире и косые черты, поэтому у них также есть выделенные клавиши, что позволяет сэкономить на нажатии кнопки.
За пределами терминала остальная часть интерфейса очень удобна; создать новый ключ SSH было легко, и я получил возможность отправить его на мой Macbook, чтобы добавить на сервер , Вы также можете импортировать ключи, которые будут беспроблемным решением и позволят вашему телефону работать в качестве рабочего стола. Подключение к серверам легко, и вы можете сохранить их в списке для быстрого доступа в будущем.
Termius свободен для IOS и Android но не хватает некоторых функций, таких как вкладки, переадресация агента SSH и SFTP в премиум-версию, стоимость которой составляет 8 долларов в месяц.
Подсказка это премиум-клиент для iOS, который содержит множество полезных функций. Он имеет тот же дизайн панели быстрого действия, что и Termius, но может быть заменен в зависимости от приложения.
Он также поддерживает сохранение наиболее часто используемых команд в глобальных клипах, которые вы можете вставить, что избавляет вас от необходимости вводить их несколько раз. Это стоит 15 долларов, но это единовременная плата и включает в себя все премиальные функции из коробки.
Git, GitHub и MySQL
Хотя iOS-устройства все же не могут считаться прекрасным инструментом для работы программиста или администратора, на них имеется клиент популярной системы контроля версий Git. Он называется Working Copy и располагает большими возможностями.
Программа позволяет найти требуемый репозиторий GitHub или BitBucket, клонировать его на устройство и изменить его файлы. Само изменение кода осуществляется через сторонние редакторы (те же Textastic или Koder). Данная возможность реализована благодаря появившейся в iOS 9 технологии Document Picker, позволяющей редактировать один и тот же файл при помощи различных программ от сторонних разработчиков. В самой программе тоже есть редактор, который вызывается через меню Action при свайпе вправо по объекту.
Утилита регистрирует изменения в файлах, их можно просмотреть. Это касается и текстовых документов, и изображений. После редактирования изменения можно запушить на сервер. Для каждого репозитория утилита создает интерактивный график изменений, где их можно отследить и затем рассмотреть более подробно.
Для iPhone и iPad есть и клиент GitHub — самого популярного сервиса для коллективной разработки проектов. Бесплатный iOctocat поддерживает некоторые функции ресурса. В основном, конечно, это просмотрщик и программа для общения разработчиков. При помощи данной программы (в бесплатной версии, есть еще Basic и Pro) нельзя создать репозиторий или форк существующего проекта. Отсутствуют также функции скачивания всего проекта и многие другие. Вероятно, они есть в платной версии, равно как и доступ к приватным репозиториям, за открытие которого разработчики данной программы взимают дополнительную плату. Еще в Pro-версии доступны Push-уведомления для более удобной переписки.
Pro- и Basic-версии iOctocat
В качестве альтернативы iOctocat есть и другой клиент — CodeHub. Он уже немного более функционален, здесь можно не только просматривать, но и редактировать и добавлять новые файлы. Важная функция — быстрый переход в веб-интерфейс из любого места программы. В остальном же возможности обоих клиентов идентичны.
Мобильные устройства Apple обладают возможностью работать и с базами данных MySQL. Для этого предназначены несколько программ, среди них QueryDB и Navicat. Navicat — продвинутое приложение для работы с БД. Его стоимость — 16 долларов, что совсем немало. Однако и возможности данной программы очень велики:
- Создание и изменение различных баз данных. Совместная работа с БД с использованием сервиса Navicat Cloud.
- Набор фильтров и поиск данных.
- Неограниченное количество подключений с использованием SSH/SSL.
- Инструменты для автоматизации создания баз данных.
Бесплатная утилита QueryDB — намного более простое решение. Это инструмент для создания и редактирования БД. Программа имеет платную версию с поддержкой SSH. Для того чтобы убрать рекламу, потребуется заплатить 3 доллара.
Подключиться по SSH
Протокол SSH используется для подключения к серверам с ОС Linux. Для подключения к серверу можно вводить логин и пароль или . Подключиться по паре ключей можно только с того компьютера, на котором хранится закрытый SSH-ключ.
из ОС Linux/MacOS
из ОС Windows
- Опционально: .
- Откройте CLI.
-
Подключитесь к серверу:
Укажите:
- — имя пользователя;
- — публичный IP-адрес сервера.
-
Введите пароль. Если вы используете пару SSH-ключей, вводить пароль не нужно.
В Windows 10 подключиться к серверу можно также, как в Linux и macOS, через командную строку (cmd.exe). В более ранних версиях Windows для подключения используется PuTTY.
- Опционально: .
- Установите PuTTY и запустите его.
- Перейдите на вкладку Session.
- В поле Host Name введите публичный IP-адрес сервера.
- В поле Port укажите порт для SSH подключения (по умолчанию 22).
- В поле Connection type выберите тип соединения SSH.
- Если вы используете пару SSH-ключей, перейдите на вкладку SSH — Auth, нажмите Browse и загрузите файл с закрытым ключом.
- Нажмите Open.
- Откроется консоль. Подтвердите подключение и введите логин и пароль для входа на сервер. Если вы используете пару SSH-ключей, вводить пароль не нужно.
Создать пару SSH-ключей
в ОС Linux/MacOS
в ОС Windows
- Откройте CLI.
-
Сгенерируйте пару SSH-ключей:
-
Укажите путь для хранения ключей:
Укажите:
/user/.ssh/id_rsa> — путь для хранения ключей.
-
Опционально: введите кодовую фразу для дополнительной защиты и повторите ее:
-
Дождитесь сообщения о том, что ключи сгенерированы:
-
Выведите открытый ключ:
Укажите:
/user/.ssh/id_rsa> — путь до ключа.
-
Разместите открытый SSH-ключ на сервере:
- через панель управления. Потребуется переустановка ОС на сервере. Откройте страницу сервера ⟶ вкладка Операционная система, нажмите Изменить конфигурацию ОС, в поле SSH введите открытый ключ. Переустановите ОС, при этом открытый SSH-ключ автоматически копируется на сервер.
-
через CLI. Перейдите в директорию .ssh где находится пара ключей и скопируйте открытый SSH-ключ на сервер. При выполнении операции система запросит пароль.
Укажите:
- — имя пользователя;
- — публичный IP-адрес сервера.
Создать создать пару SSH-ключей в Windows 10 можно через командную строку (cmd.exe) также, как в Linux/macOS. В более ранних версиях Windows для генерации ключей используется PuTTY.
- Установите PuTTY и запустите приложение PuTTYgen.
- В меню Type of key to generate выберите тип ключа RSA.
- Нажмите Generate. Перемещайте курсор в рамках окна PuTTYgen пока не будет создана пара ключей. После создания открытый ключ будет выведен на экран.
- Нажмите Save public key и Save private key. Укажите путь для хранения ключей.
- Опционально: в поле Key passphrase введите кодовую фразу для дополнительной защиты.
-
Разместите открытый SSH-ключ на сервере:
- через панель управления. Потребуется переустановка ОС на сервере. Откройте страницу сервера ⟶ вкладка Операционная система, нажмите Изменить конфигурацию ОС, в поле SSH введите открытый ключ. Переустановите ОС, при этом открытый SSH-ключ автоматически копируется на сервер.
-
через командную строку (cmd.exe). Скопируйте открытый SSH-ключ на сервер:
Укажите:
- — путь до открытого ключа;
- — имя пользователя;
- — публичный IP-адрес сервера;
- — путь для хранения открытого ключа на сервере.
Начиная
Начните с установки iSH из App Store. Запустите приложение, и вы попадете прямо в терминальную среду Alpine Linux.
Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)
Вы можете запускать знакомые команды Linux! Вы можете использовать все утилиты Unix, предоставляемые BusyBox, включая , , , и .
iSH предоставляет собственную полосу значков клавиатуры, чтобы упростить использование терминала с сенсорным экраном. Четыре кнопки слева от полосы — это Tab, Control, Escape и клавиши со стрелками соответственно. Проведите кнопкой со стрелкой в том направлении, в котором должен перемещаться курсор.
Три кнопки справа открывают интерфейс настроек, вставляют текст из буфера обмена iOS и скрывают клавиатуру. Коснитесь в любом месте, чтобы вернуть клавиатуру после ее скрытия.
_run-script
Файл тут. Не забудьте поменять метод автотризации на KeyBased как на картинке внизу.
«Шорткат» ожидает словарик на входе. В нем хост и скрипт для выполнения. Сама логика тут проста. Вынимаем из словаря host и script и присваиваем их к переменным. Вообще, это необязательно, но повышает читаемость. Далее запускаем скрипт на хосте средствами Run script over SSH.
Важный момент — аутентификация происходит по ключам. При нажатии на сам ключ в последнем шаге можно его скопировать. Далее нужно добавить его на хосты в .ssh/authorized_keys.
Наш шорткат не предназначен для запуска напрямую. Поэтому добавляем в начало такую вот конструкцию.
Теперь при исполнени напрямую он будет показывать короткий help и завершать выполнение. Все серьезно, мы тут новый Salt пишем, причем без агентов на хостах.