Mac OS X'te birden çok ssh oturumunu kolayca yönetme


9

Gelecek işimde SSH erişimi olan birçok sunucuyu ele alacağım. Ana bilgisayarların çoğunda farklı kullanıcı adı ile ~ 100-120 ana bilgisayarlar gibi olacak ve her ana bilgisayardaki hangi kullanıcı adından bahsetmiyorum, her ana bilgisayar alan adını hatırlamayacağımdan eminim.

Mac OS X (tercihen Lion) için, her ana bilgisayar için bir oturum tanımlamam (bir oturumda kullanıcı adı ve bazı ssh seçenekleri demek), bu tür oturumların listesini göstermem ve tıklama / seçmeye otomatik olarak bağlanmamı sağlayacak bir araç var mı?

Yanıtlar:


6

SSH verilerini yönetmenin veya insanların yönettiğini gördüğüm iki yol var:

İyi 'ole, komut satırı, düz metin, ssh_config dosyası.

configİçinde adlı bir dosya oluşturun ~/.ssh. Genel parametreleri herhangi bir ana bilgisayar bildiriminin üzerine koyarak belirtebilirsiniz. Kullandığım başladığımda MacPorts , ben açıkça bu yüzden koymak dosyanın ilk satırı olarak, bağlanırken SSH Özel Anahtar otomatik kullanmak için bir varsayılan tanımlamak gerekiyordu;

IdentityFile ~/.ssh/id_rsa

Ana bilgisayarlar için özel kurallar tanımladığınızda (ve * işaretini joker olarak da kullanabilirsiniz), şöyle görünür:

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

Sonra ssh prod-scriptörneğin koştuğumda, tüm kurallar otomatik olarak uygulanır.


Tüm eşyalarını bu kadar hantal bir şekilde elle yönetmek istemeyen birçok insan JellyfiSSH'yi hızlı bir şekilde bulur . ( Mac App Store Bağlantısı . Aynı kişiler ücretsiz olarak indirilemediğinde de çok sinirlendi.)

JellyfiSSH , komut satırında veya ssh_config dosyasında belirtilebilecek neredeyse her şeye GUI erişimi sağlar . JellyfiSSH yalnızca kuruluş amaçları için bir yapılandırma depolama uygulamasıdır, çünkü ayarladığınız seçeneklere göre komutlar üretir ve bağlan'a tıklandığında komut satırında tüm seçeneklerinizin tanımlandığı yeni bir terminal penceresi açar. JellyfiSSH kendi başına bir terminal uygulaması değildir .


JellyfiSSH aradığım uygulamaya benziyor. Teşekkürler!
kars7e

FYI: man ssh_configTerminal'den, geçerli sistem kurulumunuzda kullanılabilen OpenSSH SSH istemci yapılandırma dosyaları bilgilerini sağlar. Yorum sırasında, yukarıdaki geliştirici bağlantısından daha yeni olan.
l --marc l

5

Bunun gibi dosyaları Example.commandyürütülebilir hale getirebilirsiniz: chmod 755 Example.commandve bir bağlantı açmak için dosyayı çift tıklayın:

#!/bin/sh

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

exit 0

Komut satırından yalnızca bir takma ad kullanarak (hatırlanması kolay) bağlanabilmek istiyorsanız, bunları ~ / .ssh / config içinde ayarlayabilirsiniz.

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

Ardından ana bilgisayarı kullanarak bağlanabilirsiniz foo

ssh foo

Veya kabuk yapılandırma dosyanızda (~ / .bashrc veya ~ / .zshenv) işlevler yapabilirsiniz:

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

daha sonra komut satırına example.comyazarak bağlanabilirsiniz s1ve seviye 1 ayrıntı düzeyini kullanır.

Son olarak, ssh otomatik tamamlamayı kullanabilirsiniz, ancak bunun için sözdizimi seçtiğiniz kabuğunuza bağlı olacaktır. 'Ssh otomatik tamamlama YourShellHere' için hızlı bir google bazı örnekler ortaya çıkarmalıdır.

Bir parola ve OS X Anahtarlık kullanın

En önemli şey, IMO, ssh'yi bir parola ile çalışacak şekilde ayarlamaktır. OS X, Leopard'dan beri yerleşik olan mükemmel anahtarlık entegrasyonuna sahiptir.

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'

(Kaynak: http://www.paosborne.com/blog/?p=369 .)

Sonra yeni bir makineye ssh yaptığınızda, OS X anahtarlık ssh parolanızı girmenizi ister

Daha ayrıntılı bir açıklama için ayrıca http://www.dribin.org/dave/blog/archives/2007/11/28/ssh_agent_leopard/ adresine bakın . Makale daha eski, ama Lion aynı şekilde çalışıyor.

Dropbox'ı unutma

Birden fazla makinede oturum açarsanız, ~/.ssh/configdosyanızı Dropbox üzerinden senkronize edebilirsiniz . Benimkini içeride tutuyorum ~/Dropbox/etc/ssh/config.txtve sonra yapıyorum:

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

~ / .Zshenv ile aynı şeyi yapıyorum:

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

Aslında, tüm kabuk betiklerimi ~ / Dropbox / bin / dizinine koydum ve sadece tüm tabanlarımı kapsayacak şekilde $ PATH'ım da ekledim.


Dropbox, GitHub'da git / on'da yönetmek istemediğim kabuk komut dosyalarını depolamak için harika bir yerdir. O 'aha' anını tetiklediğiniz için teşekkürler TJ!
Jason Salaz

-2

Mac OS X ( PuTTY tabanlı) için vSSH uygulamasını deneyebilirsiniz .

  • Bağlantı listesini yönet (ana bilgisayar, bağlantı noktası, kullanıcı adı, şifre, anahtarlar ve diğer birçok ayar)
  • PuTTY'nin neredeyse her şeyi yapabilir
  • Çok sekmeli çoklu pencere arayüzü
  • Makro desteği (hızlı erişim için komut dosyalarını menü öğeleri olarak kabuklandırırsınız)
  • iOS için vSSH ve SSH kontrol uygulamalarıyla iCloud senkronizasyonu (bağlantılar, makrolar ve anahtarlar)

Üzerinde kullanılabilir Mac AppStore .


Farklı Sormaya hoş geldiniz! Lütfen kendi kendini tanıtmayla ilgili yardım merkezini okuyun ve yanıtınıza ürünün yazarı iseniz bir sorumluluk reddi beyanı ekleyin.
grg

1
Bu, tıklanabilir oturumların listesine nasıl izin verir? Genel pazarlamanın bir kısmını düzenleyebilir ve bunu eldeki tam soruya odaklayabilirseniz, muhtemelen daha iyi bir tepki alacaktır.
bmike
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.