SSH Pilot - Современный менеджер SSH сессий для Linux
Приветствую!

В этой заметке я расскажу вам про SSH Pilot - современный менеджер SSH соединений для Linux, написанный на Python и GTK.

Предисловие

В мире open source менеджеров сессий SSH для Linux довольно разнообразный выбор. Но! ситуация тут аналогичная той, что сложилась в мире заметочников: выбор есть, но выбрать толком и не из чего.

Для Windows есть замечательный XShell - для меня это эталон функционального и удобного менеджера сессий SSH. Но данный софт является проприетарным ПО и для личного использования по идеологическим взглядам мне не подходит.

Я длительное время искал что-то похожее на XShell, но для Linux и чтобы был open source. Максимально к этому приблизился Asbru Connection Manager. К сожалению, данный менеджер почти не развивается и последний релиз был достаточно давно. К тому же у него есть несколько критичных для меня багов.

Но как-то раз я задал вопрос нейросети с описанием своих хотелок и она предложила мне ранее неизвестное мне название - SSH Pilot. Меня это заинтересовало и я пошёл изучать вопрос. Как вы поняли, овчинка стоит выделки, на мой взгляд, иначе бы вы не читали данную статью.

Стоит сразу предупредить, что по возможностям настройки интерфейса и работы с табами/окнами SSH Pilot заметно проигрывает и Asbru, и, разумеется, XShell.

Но, надеюсь, это пока что. Ведь разработчики активно пилят свой продукт👨‍💻.

В чём особенность SSH Pilot?

Придумывать ничего не буду, а просто перечислю их с официального сайта:

Отдельно стоит отметить отличную интеграцию приложения со стандартным конфиг файлом SSH: ~/.ssh/config.

Подробнее про его использование смотрите в отдельной статье:

В качестве графического тулкита тут используется современный GTK4 с использованием libadwaita. Отчего приложение в Linux🐧 среде выглядит нативно и аккуратно😌. Логика работы приложения реализована на Python🐍.

Минимальные программные требования

Требования на момент написания статьи:

ComponentMinimum Version
GTK 44.6
libadwaita1.4
VTE (GTK4)0.70
PyGObject3.42
pycairo1.20.0
Paramiko3.4
cryptography42.0
keyring24.3
psutil5.9.0
GtkSourceView5.0

Установка SSH Pilot в Linux

Ниже приведу пример установки SSH Pilot в Linux Mint Debian Edition 7 (Debian 13) с помощью подключения официального репозитория:

BASH
# Add GPG key
curl -fsSL https://mfat.github.io/sshpilot-ppa/pubkey.gpg | \
    sudo gpg --dearmor -o /usr/share/keyrings/sshpilot-ppa.gpg  
  
# Add repository
echo "deb [signed-by=/usr/share/keyrings/sshpilot-ppa.gpg arch=amd64] https://mfat.github.io/sshpilot-ppa any main" | \
    sudo tee /etc/apt/sources.list.d/sshpilot-ppa.list  
  
# Install
sudo apt update && sudo apt install sshpilot
Нажмите, чтобы развернуть и увидеть больше

Скачать SSH Pilot можно также со страницы релизов на GitHub или с официального сайта в соответствующем разделе.

Запускаем приложение, как обычно, через основное меню.

Обзор интерфейса

После запуска программы нас встретит вот такое окно приветствия:

Тут сразу можно создать новое подключение, запустить локальный терминал или посмотреть/отредактировать текущий конфиг SSH.

Обзор основных возможностей SSH Pilot

Настройки приложения

Для перехода в настройки нажмите соответствующую иконку вверху окна программы:

Тут у нас доступны различные параметры: настройки интерфейса, выбор темы, параметры терминала, конфигурация защищенной передачи файлов, группировка соединений и, разумеется, параметры SSH:

В своей конфигурации я особо ничего не менял, кроме шрифта терминала (использую Hack Nerd Font Mono) и цветовую схему Nord (есть в списке стандартных😌).

Пример добавления новых хостов

Для добавления нового соединения нажмите кнопку + в верхней части.

Первая вкладка “Connection” позволяет настроить основные параметры соединения: адрес хоста, имя пользователя, порт, реквизиты доступа и прочее:

На вкладке “Port Forwarding” можно с удобством настроить перенаправление сетевых портов с помощью SSH:

Следующая вкладка “Commands” позволяет задать команды оболочки, запускаемые локально и/или удалённо при подключении к хосту:

На последней вкладке “Advanced” можно тонко настроить подключение. Стоит отметить графическую возможность поиска и указания необходимых параметров SSH (а их много😉):

После нажатия кнопки “Save” в левой части приложения появится новое соединение. При двойном клике по нему выполняется подключение:

Про интеграцию с ~/.ssh/config

Чуть подробнее расскажу про ключевую для меня “фичу” программы: интеграцию со стандартным конфигурационным файлом клиента SSH ~/.ssh/config.

По умолчанию SSH Pilot считывает параметры соединений из вашего клиентского конфига. Поэтому в программе предусмотрена возможность оперативного его редактирования. Нажимаем на “три точки” в верхней части окна:

И выбираем “SSH config editor”:

Откроется окно со встроенным редактором для правки конфига:

Что крайне удобно, если вам нужно быстро посмотреть конфигурацию или поправить её вручную✍️.

Профиль изоляции

Если вы не хотите затрагивать ваш основной конфигурационный файл, то SSH Pilot предлагает возможность создания изолированного профиля.

Включается это в настройках программы, в разделе “Advanced”:

В таком случае формат конфига аналогичный стандартному, только располагается он теперь по пути: ~/.config/sshpilot/ssh_config:

Группировка хостов

Одной из полезных фич является группировка хостов по отдельным папкам с возможностью указания цвета.

Для этого кликните ПКМ по хосту и выберите “Move to Group”:

В появившемся окне нужно указать название и можно задать цвет. Выглядеть это будет вот так:

Или так:

Про хранение секретов

Разумеется, SSH Pilot позволяет сохранять пароли пользователей или парольные фразы для приватных ключей SSH, необходимые для подключения к хостам.

Их можно указать в параметрах соединения или в момент авторизации.

В случае использования ключа, защищённого паролем, всплывёт такое окно:

Все секреты хранятся во встроенной в ОС связке ключей. В случае Linux Mint используется связка gnome-keyring с фронтендом Seahorse:

Подробнее про связки ключей читайте тут.

Защищённая передача файлов

Отдельно стоит рассказать, как реализована защищённая передача файлов с помощью sftp.

Для её инициализации просто нажмите на иконку “Manage files” в самом соединении:

Она открывает передачу файлов в вашем файловом менеджере. В Linux Mint это Nemo:

Как по мне - очень удобно!

Для использования встроенного scp нажмите кнопку “передачи” в нижней части окна:

Экспорт-импорт конфигурации SSH Pilot

Для экспорта/импорта конфигурации приложения, включая настройки подключений, воспользуйтесь соответствующим пунктом меню:

Послесловие

В этой небольшой обзорной заметке мы с вами познакомились с таким удобным и современным инструментом, как SSH Pilot.

Многие скептически относятся к различным графическим менеджерам сессий, предпочитая пользоваться для целей удаленного подключения исключительно command line клиентом SSH.

Я ничего не имею против этого. К тому же чаще всего подключаюсь к своим хостам именно таким образом. Но также не вижу ничего плохого в повышении удобства во время работы, в том числе и благодаря GUI клиентам. Тут уж каждый выбирает для себя сам.

На прошлой работе я продолжительное время активно использовал XShell в качестве основного SSH клиента. Он мне очень нравился - действительно качественный и продуманный инструмент. Но произошли изменения, после которых его использование стало невозможным. А для личных целей, повторюсь, я принципиально стараюсь как можно больше пользоваться именно open source программным обеспечением.

Спасибо, что читаете мой блог. Успехов вам!

Используемые материалы

Статьи вороньего блога по теме:

Авторские права

Автор: Иван Чёрный

Ссылка: https://r4ven.me/software/ssh-pilot-sovremennyy-menedzher-ssh-sessiy-dlya-linux/

Лицензия: CC BY-NC-SA 4.0

Использование материалов блога разрешается при условии: указания авторства/источника, некоммерческого использования и сохранения лицензии.

Начать поиск

Введите ключевые слова для поиска статей

↑↓
ESC
⌘K Горячая клавиша