SSH меню в Mac OS через bitbar и iTerm2
Я долго искал удобный кроссплатформенный 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
он автоматически будет появляться в статус баре мака и к нему можно будет подключиться одним кликом