Как легко управлять несколькими сессиями SSH в Mac OS X

9

На предстоящей работе я буду работать со многими серверами с доступом по SSH. Это будет примерно 100-120 хостов с разными именами пользователей на большинстве хостов, и я уверен, что не буду помнить каждое доменное имя хоста, не говоря уже о том, какое имя пользователя на каждом хосте.

Существует ли инструмент для Mac OS X (предпочтительно Lion), который позволил бы мне определить сессию для каждого хоста (в сеансе я имею в виду имя пользователя и некоторые параметры ssh), показать список таких сессий и автоматически подключаться при нажатии / выборе?

kars7e
источник

Ответы:

6

Есть два способа, которыми я управляю или видел, как люди управляют данными SSH:

Хороший файл , командная строка, простой текст, файл ssh_config .

Создайте файл с именем configвнутри ~/.ssh. Вы можете указать глобальные параметры, поместив их выше любых объявлений хоста. Когда я начал использовать MacPorts , мне пришлось явно определить закрытый ключ SSH по умолчанию, который будет использоваться автоматически при подключении, в качестве самой первой строки файла, который я поместил;

IdentityFile ~/.ssh/id_rsa

Когда вы определяете пользовательские правила для хостов (и вы даже можете использовать * в качестве подстановочного знака), это выглядит примерно так:

Host prod-*
  User jason
  Port 2222
  LocalForward 5901 localhost:5901
  IdentityFile ~/.ssh/work-id_rsa

Затем, когда я запускаю, ssh prod-scriptнапример, все остальные правила применяются автоматически.


Многие люди, которые не хотят вручную управлять всеми своими вещами таким громоздким способом, быстро находят JellyfiSSH . ( Ссылка на Mac App Store . Те же люди стали очень раздражаться, когда их перестали скачивать бесплатно.)

JellyfiSSH предоставляет GUI доступ практически ко всему, что может быть указано в командной строке или в файле ssh_config. JellyfiSSH - это просто приложение для хранения конфигурации для организационных целей, потому что оно генерирует команды на основе заданных вами опций и, щелкнув по кнопке подключиться, открывает новое окно терминала со всеми вашими опциями, определенными в командной строке. JellyfiSSH не является терминальным приложением само по себе.

Джейсон Салаз
источник
JellyfiSSH выглядит как приложение, которое я искал. Спасибо!
kars7e
К вашему сведению: man ssh_configиз Терминала будет предоставлена ​​информация о файлах конфигурации клиента OpenSSH SSH, доступная в вашей текущей установке системы. Который, на момент комментария, является более свежим, чем приведенная выше ссылка для разработчиков.
1 марта
5

Вы можете сделать файлы, такие как Example.commandзатем сделать его исполняемым: chmod 755 Example.commandи дважды щелкнуть файл, чтобы открыть соединение:

#!/bin/sh

exec /usr/bin/ssh username@example.com

exit 0

Если вы просто хотите иметь возможность подключаться из командной строки, используя псевдоним (легко запоминаемое слово), вы можете настроить их в ~ / .ssh / config

Host foo
HostName some.really.long.hostname.here.com
Port 22
User bigfun

Затем вы можете подключиться с помощью хоста foo

ssh foo

Или вы можете просто сделать функции в вашем конфигурационном файле оболочки (~ / .bashrc или ~ / .zshenv):

s1 () {
    ssh -v username@example.com
}

затем вы можете подключиться к нему, example.comпросто набрав s1в командной строке, и он будет использовать уровень 1 многословия.

Наконец, вы можете использовать автозаполнение ssh, но синтаксис для этого будет зависеть от вашей оболочки. Краткий обзор «ssh autocomplete YourShellHere» должен привести несколько примеров.

Используйте фразу-пароль и OS X Keychain

Самое важное, IMO, это настроить ssh для работы с парольной фразой. OS X имеет отличную интеграцию брелка со времен Leopard.

ssh-keygen -t dsa -f ~/.ssh/id_dsa -C "you@exampledomain.com"

cat ~/.ssh/id_dsa.pub | ssh you@host.domain 'cat – >> ~/.ssh/authorized_keys'

(Источник: http://www.paosborne.com/blog/?p=369 .)

Затем, когда вы перейдете по ssh на новую машину, брелок OS X предложит вам ввести ssh пароль

Смотрите также http://www.dribin.org/dave/blog/archives/2007/11/28/ssh_agent_leopard/ для более полного описания. Статья старше, но Lion работает так же.

Не забудьте Dropbox

Если вы входите на несколько компьютеров, вы можете синхронизировать ~/.ssh/configфайл через Dropbox. Я держу в себе, ~/Dropbox/etc/ssh/config.txtа затем я делаю:

cd ~/.ssh
ln -s ../Dropbox/etc/ssh/config.txt config

Я делаю то же самое, что и с моим ~ / .zshenv:

cd
ln -s Dropbox/etc/zshenv.sh .zshenv

Фактически, я поместил все свои сценарии оболочки в ~ / Dropbox / bin / и добавил это тоже в свой $ PATH, просто чтобы покрыть все мои базы.

Ти Джей Луома
источник
Dropbox - отличное место для хранения сценариев оболочки, которыми я не хочу управлять в git / на GitHub. Спасибо за то, что зажгли этот момент ага, TJ!
Джейсон Салас
-2

Вы можете попробовать приложение vSSH для Mac OS X (на основе PuTTY ).

  • Управление списком соединений (хост, порт, имя пользователя, пароль, ключи и множество других настроек)
  • Может почти все, что может PuTTY
  • Multi-Tab многооконный интерфейс
  • Поддержка макросов (вы используете сценарии в качестве пунктов меню для быстрого доступа)
  • Синхронизация iCloud (соединения, макросы и ключи) с приложениями управления vSSH и SSH для iOS

Доступно в Mac AppStore .

кто я
источник
Добро пожаловать, чтобы спросить другого! Пожалуйста, прочтите справочный центр по вопросам саморекламы и включите заявление об отказе от ответственности, если вы являетесь автором продукта в своем ответе.
grg
1
Как это на самом деле позволяет кликабельный список сессий? Если бы вы могли отредактировать часть общего маркетинга и сосредоточить его на конкретном вопросе, он, вероятно, получит лучшую реакцию.
bmike