Перейти к основному содержимому

SSH меню в Mac OS через bitbar и iTerm2

· 3 мин. чтения

Я долго искал удобный кроссплатформенный SSH клиент для Mac OS, в котором можно было бы использовать те же конфиги, что и на Windows, но спустя всякие Remote Desktop Manager, Royal TS и топовые клиенты так и не нашел то, что мне нужно, смирившись с мыслью о том, что придется все-таки заморачиваться и вводить данные серверов везде по отдельности.

Чтобы хоть как-то упростить себе жизнь, я пробовал использовать bash алиасы, триггеры в iTerm2, пытался смириться с shuttle и делал всякие прочие костыли, пока не добрался до того, что меня наконец устроило.

Для быстрого подключения к SSH, сервера добавлены в ~/.ssh/config, что позволяет подключаться по коротким названиям, например ssh sites без ввода пароля. Даже если у вас более 10 серверов, я почти уверен, что вы можете не задумываясь дать каждому с них свое название, которое и сможете использовать при подключении (хотя это не понадобится с bitbar). Для авторизации на серверах я использую ssh ключи с шифрованием ED25519, путь к которым сразу прописан в ssh config и указывать их больше нигде не нужно

Bitbar - альтернатива Shuttle

Bibar можно настроить почти под любой функционал, тогда как Shuttle это решение, заточенное в основном под SSH подключения. У меня пока что есть 2 плагина: отображение баланса и выписки Monobank и SSH меню, которое берет хосты с ssh config и делает для них кнопку подключения.

Через простейший API bitbar'а можно сделать почти все, что угодно практически на любом ЯП.

SSH меню через bitbar

У bitbar есть множество плагинов, в том числе SSH меню, но его проблема в том, что подключения открываются в стандартном терминале вместо нужного мне iTerm. Встроенной поддержки iTerm2 у bitbar нет, но подружить их получилось.

Открываем соединения в iTerm, а не стандартном терминале

В preferences iTerm создайте новый профиль, где command будет $$ и в url schemes выбран ssh.

Новый профиль + command + url scheme

Теперь нужно сделать, чтобы ssh:// ссылки обрабатывались в iTerm. Для этого в меню приложения сделайте iTerm терминалом по умолчанию или просто нажмите ^+shift+cmd+\

Третья кнопка снизу ^+shift+cmd+\

И последнее. Установите крошечный SSH плагин для bitbar, откройте его и измените так, чтобы в строке с awk получилось awk  '/^Host / && !/*/ {print $2" | bash=/usr/bin/open param1=ssh://"$2" terminal=false"}' ~/.ssh/config

Изменения заключаются в /usr/bin/open и terminal=false. open в Mac открывает файл или ссылку стандартным приложением, которым в нашем случае сделан iTerm, а terminal=false делает, чтобы команда выполнилась без открытия стандартного терминала Mac OS. Важно указать полный путь к /usr/bin/open, иначе работать не будет, с чем я долго провозился и не мог понять причину, почему не работает

Вы великолепны!

Теперь при добавлении хоста в ~/.ssh/config он автоматически будет появляться в статус баре мака и к нему можно будет подключиться одним кликом