Як легко керувати кількома сесіями ssh на Mac OS X


9

На моїй майбутній роботі я буду працювати з багатьма серверами з доступом до SSH. Це буде, як ~ 100-120 хостів, з різними іменами користувача на більшості хостів, і я впевнений, що не буду запам’ятовувати кожне ім’я домену хоста, не кажучи вже про те, яке ім’я користувача є на кожному хості.

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

Відповіді:


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 . Ті ж люди також стали дуже роздратовані, коли вони перестали завантажуватися безкоштовно.)

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


JellyfiSSH схоже на додаток, який я шукав. Дякую!
kars7e

FYI: man ssh_configз Терміналу надасть інформацію про файли конфігурації клієнта OpenSSH SSH, як це доступно в поточній установці системи. Що на момент коментаря є останнім часом, ніж вищенаведене посилання для розробників.
l --marc l

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, але синтаксис цього буде залежати від обраної вами оболонки. Швидкий google для 'ssh autocomplete YourShellHere' повинен знайти кілька прикладів.

Використовуйте парольну фразу та брелок OS X

Найголовніше, 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 запропонує вам отримати вашу пароль

Дивіться також http://www.dribin.org/dave/blog/archives/2007/11/28/ssh_agent_leopard/ для більш повного опису. Стаття старіша, але Лев працює так само.

Не забудьте 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 / on GitHub. Дякуємо, що почали цей "ага" момент, TJ!
Джейсон Салаз

-2

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

  • Керування списком з'єднань (хост, порт, ім’я користувача, пароль, ключі та багато інших налаштувань)
  • Можна майже все, що може PuTTY
  • Інтерфейс з декількома вкладками
  • Підтримка макросів (ви використовуєте сценарії як оболонки для швидкого доступу)
  • Синхронізація iCloud (з'єднання, макроси та ключі) з програмами управління vSSH та SSH для iOS

Доступний на Mac AppStore .


Ласкаво просимо в Інші! Будь ласка, прочитайте довідковий центр щодо самореклами та включіть відмову, якщо ви є автором продукту у своїй відповіді.
гр

1
Як це насправді дозволяє перелік сеансів, які можна натискати? Якщо ви зможете відредагувати якийсь із загального маркетингу та зосередити це на точному питанні, це, швидше за все, отримає кращу реакцію.
bmike
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.