मैक ओएस एक्स पर आसानी से कई ssh सत्रों का प्रबंधन कैसे करें


9

मेरी आने वाली नौकरी में मैं एसएसएच एक्सेस के साथ कई सर्वरों को संभालूंगा। यह ~ 100-120 मेजबानों की तरह होगा, जिसमें अधिकांश मेजबान पर अलग-अलग उपयोगकर्ता नाम होंगे, और मुझे पूरा यकीन है कि मुझे प्रत्येक होस्ट डोमेन नाम याद नहीं होगा, यह उल्लेख करने के लिए नहीं कि प्रत्येक होस्ट पर कौन सा उपयोगकर्ता नाम है।

क्या मैक ओएस एक्स (अधिमानतः) के लिए एक उपकरण है जो मुझे प्रत्येक होस्ट के लिए एक सत्र को परिभाषित करने की अनुमति देगा (एक सत्र में मेरा मतलब उपयोगकर्ता नाम और कुछ 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उदाहरण के लिए दौड़ता हूं , तो बाकी सभी नियम अपने आप लागू हो जाते हैं।


बहुत सारे लोग जो ऐसे बोझिल तरीके से अपने सभी सामान को मैन्युअल रूप से प्रबंधित नहीं करना चाहते हैं, जल्दी से जेलीफीएसएसएच पाते हैं । ( मैक ऐप स्टोर लिंक । वही लोग भी बहुत परेशान हो गए जब इसे मुफ्त में डाउनलोड करने से रोका गया।

जेलिफीएसएसएच आपको लगभग हर उस चीज तक पहुंच प्रदान करता है जिसे कमांड लाइन या 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 स्वतः पूर्णता का उपयोग कर सकते हैं, लेकिन इसके लिए वाक्यविन्यास आपकी पसंद के शेल पर निर्भर करेगा। 'Ssh स्वत: पूर्ण YourShellHere' के लिए एक त्वरित Google को कुछ उदाहरणों को बदलना चाहिए।

पासफ़्रेज़ और OS X कीचेन का उपयोग करें

IMO के साथ काम करने के लिए सबसे महत्वपूर्ण बात, IMO को सेटअप करना है। ओएस एक्स में तेंदुए के बाद से निर्मित महान किचेन एकीकरण है।

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/ भी देखें । लेख पुराना है, लेकिन शेर उसी तरह काम करता है।

ड्रॉपबॉक्स मत भूलना

यदि आप कई मशीनों में लॉग इन करते हैं, तो आप ~/.ssh/configड्रॉपबॉक्स के माध्यम से अपनी फाइल को सिंक कर सकते हैं । मैं अपने को अंदर रखता हूँ ~/Dropbox/etc/ssh/config.txtऔर फिर करता हूँ:

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

मैं अपने ~ / .zshenv के साथ भी यही काम करता हूं:

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

वास्तव में, मैंने अपने सभी शेल स्क्रिप्ट को ~ / ड्रॉपबॉक्स / बिन / में डाल दिया और अपने $ पैट को भी जोड़ दिया, बस अपने सभी ठिकानों को कवर करने के लिए।


ड्रॉपबॉक्स शेल स्क्रिप्ट को स्टोर करने के लिए एक शानदार जगह है जिसे मैं गिट में / गिटहब पर प्रबंधित नहीं करना चाहता। उस 'अहा' क्षण को स्पार्क करने के लिए धन्यवाद, टीजे!
जेसन सलज

-2

आप कोशिश कर सकते हैं vSSH (मैक ओएस एक्स के लिए एप्लिकेशन पुट्टी आधारित)।

  • कनेक्शन सूची (होस्ट, पोर्ट, उपयोगकर्ता नाम, पासवर्ड, कुंजियाँ और बहुत सारी अन्य सेटिंग्स) प्रबंधित करें
  • लगभग वो सब कुछ जो PuTTY कर सकता है
  • मल्टी-टैब मल्टी-विंडो इंटरफ़ेस
  • मैक्रोज़ समर्थन (आप त्वरित पहुंच के लिए मेनू आइटम के रूप में स्क्रिप्ट खोलते हैं)
  • iOS के लिए vSSH और SSH नियंत्रण एप्लिकेशन के साथ iCloud सिंक्रनाइज़ेशन (कनेक्शन, मैक्रोज़ और कुंजियाँ)

मैक AppStore पर उपलब्ध है ।


अलग पूछने के लिए आपका स्वागत है! कृपया स्वयं-प्रचार के संबंध में सहायता केंद्र पढ़ें और यदि आप अपने उत्तर में उत्पाद के लेखक हैं तो एक अस्वीकरण शामिल करें।
GRG

1
यह वास्तव में सत्रों की क्लिक करने योग्य सूची की अनुमति कैसे देता है? यदि आप जेनेरिक मार्केटिंग में से कुछ को संपादित कर सकते हैं और इसे सटीक प्रश्न पर केंद्रित कर सकते हैं, तो संभवत: इसे बेहतर प्रतिक्रिया मिलेगी।
bmike
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.