วิธีการจัดการเซสชันหลาย ssh ได้อย่างง่ายดายบน Mac OS X


9

ที่งานที่กำลังจะมาถึงของฉันฉันจะจัดการเซิร์ฟเวอร์หลายเครื่องด้วยการเข้าถึง SSH มันจะเป็นเหมือน ~ 100-120 โฮสต์ที่มีชื่อผู้ใช้ที่แตกต่างกันในโฮสต์ส่วนใหญ่และฉันค่อนข้างแน่ใจว่าฉันจะจำชื่อโดเมนโฮสต์แต่ละชื่อไม่ต้องพูดถึงชื่อผู้ใช้ที่อยู่ในแต่ละโฮสต์

มีเครื่องมือสำหรับ Mac OS X (Lion ควรหรือไม่) ซึ่งจะช่วยให้ฉันกำหนดเซสชันสำหรับแต่ละโฮสต์ (ในเซสชันที่ฉันหมายถึงชื่อผู้ใช้และตัวเลือก ssh) แสดงรายการของเซสชันดังกล่าวและเชื่อมต่อกับการคลิก / เลือกโดยอัตโนมัติ?

คำตอบ:


6

มีสองวิธีที่ฉันจัดการหรือเห็นผู้คนจัดการข้อมูล SSH:

ดี 'ole, บรรทัดคำสั่ง, ข้อความธรรมดา, ไฟล์ssh_config

สร้างไฟล์ที่เรียกว่าภายในconfig ~/.sshคุณสามารถระบุพารามิเตอร์ส่วนกลางได้โดยวางไว้เหนือการประกาศโฮสต์ใด ๆ เมื่อฉันเริ่มใช้MacPortsฉันต้องกำหนด SSH Private Key ที่เป็นค่าเริ่มต้นให้ใช้โดยอัตโนมัติเมื่อทำการเชื่อมต่อดังนั้นเป็นบรรทัดแรกของไฟล์ที่ฉันใส่

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

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 verbosity

สุดท้ายคุณสามารถใช้การทำให้สมบูรณ์อัตโนมัติของ ssh ได้ แต่ไวยากรณ์สำหรับสิ่งนั้นจะขึ้นอยู่กับเชลล์ที่คุณเลือก google สำหรับ 'ssh เติมข้อความอัตโนมัติ YourShellHereHere' อย่างรวดเร็วควรแสดงตัวอย่าง

ใช้ข้อความรหัสผ่านและพวงกุญแจ 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 จะแจ้งให้คุณใส่รหัสผ่าน 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 ขอบคุณที่จุดประกายช่วงเวลา 'aha' TJ!
Jason Salaz

-2

คุณสามารถลองแอปvSSHสำหรับ Mac OS X ( PuTTY- based)

  • จัดการรายการเชื่อมต่อ (โฮสต์พอร์ตชื่อผู้ใช้รหัสผ่านกุญแจและการตั้งค่าอื่น ๆ อีกมากมาย)
  • สามารถเกือบทุกอย่างที่PuTTYทำได้
  • Multi-tab interface หลายหน้าต่าง
  • การสนับสนุนแมโคร (คุณเชลล์สคริปต์เป็นรายการเมนูสำหรับการเข้าถึงที่รวดเร็ว)
  • การซิงโครไนซ์ iCloud (การเชื่อมต่อมาโครและปุ่ม) ด้วยแอปควบคุมvSSHและSSHสำหรับ iOS

สามารถใช้งานบนMac AppStore


ยินดีต้อนรับสู่ถามที่แตกต่างกัน! โปรดอ่านศูนย์ช่วยเหลือเกี่ยวกับการโปรโมตตนเองและระบุคำปฏิเสธหากคุณเป็นผู้เขียนผลิตภัณฑ์ในคำตอบของคุณ
grg

1
วิธีนี้อนุญาตรายการเซสชันที่คลิกได้อย่างไร หากคุณสามารถแก้ไขการตลาดทั่วไปบางส่วนและมุ่งเน้นคำถามนี้ไปได้จริงมันน่าจะตอบสนองได้ดีกว่า
bmike
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.