Jak z łatwością zarządzać wieloma sesjami ssh w Mac OS X

9

Podczas mojej nadchodzącej pracy będę obsługiwać wiele serwerów z dostępem SSH. Będzie to około ~ 100-120 hostów, z inną nazwą użytkownika na większości hostów, i jestem prawie pewien, że nie zapamiętam nazwy domeny każdego hosta, nie wspominając już o nazwie użytkownika na każdym hoście.

Czy istnieje narzędzie dla Mac OS X (najlepiej Lion), które pozwoliłoby mi zdefiniować sesję dla każdego hosta (w sesji mam na myśli nazwę użytkownika i niektóre opcje ssh), wyświetlić listę takich sesji i połączyć się automatycznie po kliknięciu / wybraniu?

kars7e
źródło

Odpowiedzi:

6

Istnieją dwa sposoby zarządzania danymi SSH lub ich obserwowania:

Dobry plik , wiersz poleceń, zwykły tekst, plik ssh_config .

Utwórz plik o nazwie configinside ~/.ssh. Możesz określić parametry globalne, umieszczając je powyżej deklaracji hosta. Kiedy zacząłem używać MacPorts , musiałem jawnie zdefiniować domyślny klucz prywatny SSH, który będzie używany automatycznie podczas łączenia, tak jak pierwszy wiersz pliku, który umieszczam;

IdentityFile ~/.ssh/id_rsa

Gdy zdefiniujesz niestandardowe reguły dla hostów (i możesz nawet użyć * jako symbolu wieloznacznego), wygląda to tak:

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

Następnie, gdy uruchamiam ssh prod-scriptna przykład, wszystkie pozostałe reguły są stosowane automatycznie.


Wiele osób, które nie chcą ręcznie zarządzać wszystkimi swoimi rzeczami w tak uciążliwy sposób, szybko znajduje JellyfiSSH . ( Link do Mac App Store . Te same osoby również bardzo się zirytowały, gdy przestały być dostępne do pobrania za darmo).

JellyfiSSH zapewnia GUI dostęp do prawie wszystkiego, co można określić w wierszu poleceń lub pliku ssh_config. JellyfiSSH to tylko aplikacja do przechowywania konfiguracji do celów organizacji, ponieważ generuje polecenia na podstawie ustawionych opcji, a po kliknięciu przycisku Connect otwiera nowe okno terminala ze wszystkimi opcjami zdefiniowanymi w wierszu polecenia. JellyfiSSH nie jest samodzielną aplikacją terminalową.

Jason Salaz
źródło
JellyfiSSH wygląda jak aplikacja, której szukałem. Dzięki!
kars7e
Do Twojej wiadomości: man ssh_configz terminala dostarczy informacje o plikach konfiguracyjnych klienta OpenSSH SSH, które są dostępne w Twojej bieżącej instalacji systemu. Który w momencie komentarza jest nowszy niż powyższy link dla programistów.
l --marc l
5

Możesz sprawić, by pliki, takie jak Example.commandwtedy, były wykonalne: chmod 755 Example.commandi kliknij dwukrotnie plik, aby otworzyć połączenie:

#!/bin/sh

exec /usr/bin/ssh [email protected]

exit 0

Jeśli chcesz mieć możliwość łączenia się z wiersza poleceń za pomocą aliasu (łatwe do zapamiętania słowo), możesz je skonfigurować w ~ / .ssh / config

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

Następnie możesz połączyć się za pomocą hosta foo

ssh foo

Lub możesz po prostu wykonać funkcje w pliku konfiguracyjnym powłoki (~ / .bashrc lub ~ / .zshenv):

s1 () {
    ssh -v [email protected]
}

wtedy możesz połączyć się z example.comtym, pisząc s1w wierszu poleceń, a on użyje gadatliwości poziomu 1.

Na koniec możesz użyć automatycznego uzupełniania ssh, ale jego składnia będzie zależeć od wybranej powłoki. Szybkie google dla „ssh autouzupełniania YourShellHere” powinno znaleźć kilka przykładów.

Użyj hasła i pęku kluczy OS X

Najważniejszą rzeczą, IMO, jest skonfigurowanie ssh do pracy z hasłem. OS X ma świetną wbudowaną integrację pęku kluczy od Leoparda.

ssh-keygen -t dsa -f ~/.ssh/id_dsa -C "[email protected]"

cat ~/.ssh/id_dsa.pub | ssh [email protected] 'cat – >> ~/.ssh/authorized_keys'

(Źródło: http://www.paosborne.com/blog/?p=369 .)

Następnie, kiedy ssh na nowej maszynie, brelok OS X wyświetli monit o podanie hasła ssh

Pełny opis znajduje się również na stronie http://www.dribin.org/dave/blog/archives/2007/11/28/ssh_agent_leopard/ . Artykuł jest starszy, ale Lion działa w ten sam sposób.

Nie zapomnij Dropbox

Jeśli zalogujesz się na wiele komputerów, możesz zsynchronizować swój ~/.ssh/configplik za pośrednictwem Dropbox. Trzymam moje, ~/Dropbox/etc/ssh/config.txta potem:

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

Robię to samo, co z moim ~ / .zshenv:

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

W rzeczywistości umieściłem wszystkie moje skrypty powłoki w ~ / Dropbox / bin / i dodałem to również do mojego $ PATH, tylko po to, aby pokryć wszystkie moje bazy.

TJ Luoma
źródło
Dropbox to świetne miejsce do przechowywania skryptów powłoki, których nie chcę zarządzać w git / na GitHub. Dzięki za wywołanie tej chwili „aha”, TJ!
Jason Salaz,
-2

Możesz wypróbować aplikację vSSH dla systemu Mac OS X (na podstawie PuTTY ).

  • Zarządzaj listą połączeń (host, port, nazwa użytkownika, hasło, klucze i wiele innych ustawień)
  • Może prawie wszystko, co potrafi PuTTY
  • Interfejs wielu okien z wieloma kartami
  • Obsługa makr (skrypty są wykonywane jako elementy menu w celu szybkiego dostępu)
  • Synchronizacja iCloud (połączenia, makra i klucze) z aplikacjami sterującymi vSSH i SSH na iOS

Dostępne w Mac AppStore .

kim jestem
źródło
Witamy, aby zapytać inaczej! Przeczytaj centrum pomocy dotyczące autopromocji i dołącz do zrzeczenia się odpowiedzialności, jeśli jesteś autorem produktu w swojej odpowiedzi.
grg
1
Jak to w rzeczywistości pozwala na klikalną listę sesji? Jeśli zredagujesz ogólny marketing i skoncentrujesz się na konkretnym pytaniu, prawdopodobnie uzyska lepszą reakcję.
bmike