วิธีการสร้างการเชื่อมต่อทางลัดเทอร์มินัล ssh บน Mac OS X


27

มันยากที่จะเปิด Terminal ในแต่ละครั้งและเขียนคำสั่ง SSH ที่สมบูรณ์ ฉันจะสร้างทางลัดการเชื่อมต่อเทอร์มินัล SSH บน Mac OS X 10.6.8 (Snow Leopard) ได้อย่างไร

ฉันยังมีพอร์ตที่กำหนดเองเพื่อเชื่อมต่อ

คำตอบ:


80

คำตอบ * NIX-y ที่สุดคือการใช้คุณสมบัติของ SSH เพื่อประโยชน์ของคุณ

สร้างไฟล์ชื่อconfigใน~/.ssh/(โฟลเดอร์ชื่อ.sshในโฟลเดอร์ที่บ้านของคุณ) เพิ่มรายการสำหรับคอมพิวเตอร์แต่ละเครื่องที่คุณต้องการเชื่อมต่อเช่นนี้

Host compy
    HostName 98.256.211.12
    Port 90
    User sidney
    IdentityFile ~/.ssh/my_rsa_key
  • HostName สามารถเป็นได้ทั้งที่อยู่ IP หรือชื่อโฮสต์จริง
  • Port ไม่บังคับถ้าใช้พอร์ต SSH ที่เป็นค่าเริ่มต้น
  • IdentityFileไม่บังคับถ้าไม่ได้ใช้กุญแจ

    จากนั้นเพื่อเชื่อมต่อให้พิมพ์

ssh compy

หากคุณใช้การพิสูจน์ตัวตนแบบใช้คีย์และเก็บรหัสผ่านของคีย์ไว้ใน Keychain คุณไม่จำเป็นต้องป้อนรหัสผ่าน

นอกจากนี้คุณสามารถสร้างไฟล์. คำสั่ง (ไฟล์ข้อความธรรมดาที่มีนามสกุล. คำสั่ง) ที่มีบรรทัดคำสั่งที่คุณใช้เชื่อมต่อกับเซิร์ฟเวอร์ ( ssh compyหรือssh -i ~/.ssh/my_rsa_key -p 90 sidney@98.256.211.12) มันจะเปิดใน Terminal และเรียกใช้คำสั่งนั้น

คุณยังสามารถใช้New Remote Connection…รายการเมนูใน Terminal เพื่อเชื่อมต่อ เพียงเพิ่มโฮสต์ของคุณภายใต้ SSH โดยคลิกที่+ปุ่มในคอลัมน์ด้านขวา

อ่านเพิ่มเติมได้ที่นี่


ฉันใช้สิ่งนี้ร่วมกับการเพิ่มคีย์ ssh ไปยังเซิร์ฟเวอร์ คุณสามารถกดรหัสสาธารณะของคุณเช่นนี้ 'ssh-copy-id -i .ssh / id_rsa.pub ชื่อผู้ใช้: รหัสผ่าน @ remotehost'
jspooner

10

คุณมีสองทางเลือกที่ฉันนึกถึง:

สร้างไฟล์. คำสั่ง

ในตัวแก้ไขข้อความที่คุณชื่นชอบสร้างบันทึกไฟล์ข้อความธรรมดาด้วยคำสั่ง ssh ของคุณเช่น

ssh -p 23 admin@server.example.com

WHATEVERYOUWANT.commandชื่อแฟ้ม จากนั้นคุณต้องตั้งค่า.commandไฟล์ด้วยสิทธิพิเศษในการใช้งาน ( chmod 755 /PATH/TO/WHATEVERYOUWANT.command) แต่ตอนนี้คุณมีไฟล์ที่เมื่อดับเบิลคลิกแล้วจะเปิด Terminal ขึ้นมาและรันคำสั่งนั้น

สร้างนามแฝงสำหรับเปลือกของคุณ

สมมติว่าคุณกำลังใช้ bash (เชลล์เริ่มต้นใน Mac OS X) คุณสามารถเพิ่มชื่อแทน.bashrcในโฟลเดอร์บ้านของคุณ

เช่น. alias sshserver='ssh -p 23 admin@server.example.com'

คุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับนามแฝงได้ที่ [Wikipedia] ( http://en.wikipedia.org/wiki/Alias_(command)หรือโดยการอ่านเอกสาร


5

มีหลายวิธีในการทำเช่นนี้ นี่คือสิ่งที่ฉันทำ:

เปิดการตั้งค่าเทอร์มินัล

ทำโปรไฟล์ของคุณซ้ำบนแท็บการตั้งค่าด้วยไอคอนรูปเฟือง สิ่งนี้จะเปลี่ยนไฟล์การตั้งค่าเริ่มต้นของคุณดังนั้นเปลี่ยนค่าเริ่มต้นเก่าของคุณกลับไปเป็นแบบเดิมก่อนทำซ้ำ

ในการตั้งค่าแบบกำหนดเองใหม่ของคุณคลิกที่ประเภทของเชลล์ในคำสั่ง ssh ของคุณในส่วน Run Command at Startup

เปลี่ยนชื่อการตั้งค่าใหม่จากกำหนดเองเป็นสิ่งที่คุณต้องการ

ตอนนี้คุณสามารถเริ่มเซสชันจากรายการเมนูหน้าต่างใหม่หรือแท็บใหม่และแน่นอนว่าสามารถกำหนดแป้นพิมพ์ลัดใน Keyboard & Mouse ในการตั้งค่าระบบ



3

หากต้องการเปิดการเชื่อมต่อ ssh อย่างรวดเร็วจากเกือบทุกที่บน Mac ของคุณให้ทำดังต่อไปนี้:

  • เปิด TextEdit และพิมพ์สตริงการเชื่อมต่อของคุณในรูปแบบของ: ssh://user@host.com
  • เลือกทั้งบรรทัดและลากแล้ววางลงบนเดสก์ท็อป ผลลัพธ์จะเป็น*.inetlocไฟล์
  • ย้ายไฟล์ไปยังโฟลเดอร์ที่คุณต้องการ ฉันสร้างชื่อ~/connectionsที่เก็บ*.inetlocไฟล์ทั้งหมดของฉัน คุณสามารถเปลี่ยนชื่อไฟล์นี้เป็นสิ่งที่คุณต้องการและแม้กระทั่งเปลี่ยนไอคอน
  • ตอนนี้คุณสามารถลากและวาง*.inetlocไฟล์ไปที่ Dock แถบด้านข้างของ Finder's หรือแถบเครื่องมือหรือไปที่อื่น (สามารถเลือกได้ด้วย Spotlight)
  • หากคุณใช้ LaunchBar ให้เปิดหน้าจอการกำหนดค่า Launchbar (Command-Y) และเพิ่มกฎอื่นสำหรับโฟลเดอร์การเชื่อมต่อของคุณ ตอนนี้การเชื่อมต่อ SSH ของคุณสามารถเปิดได้ด้วย LaunchBar ฉันเชื่อว่าคุณสามารถทำได้คล้ายกับ LaunchBar และ Quicksilver ทำให้สามารถเปิดใช้งานทางลัด SSH ได้อย่างรวดเร็ว

สร้างทางลัด ssh อย่างรวดเร็ว


1
นี่เป็นวิธีที่ดีและรวดเร็วในการเปิดเทอร์มินัลในโฮสต์ระยะไกล!
cmroanirgo

3

สำหรับผู้ที่ใช้ไพรเวตคีย์กับ ssh และต้องการใช้เมธอด ~ / .ssh / config คุณสามารถเพิ่มแอ็ตทริบิวต์ 'IdentityFile' ให้กับโฮสต์ของคุณแล้วตามด้วยพา ธ คีย์ เช่น:

Host SomeServer
    User ubuntu
    HostName someserver.com
    IdentityFile ~/.ssh/private.key

ฉันจะเพิ่มบิตนี้เป็นข้อคิดเห็นในหนึ่งในคำตอบ แต่ชื่อเสียงของฉันยังอยู่ในระดับต่ำและฉันไม่ได้รับอนุญาตให้ทำเช่นนั้น


2

หากคุณต้องการไฟล์ที่คุณสามารถเปิดเพื่อเปิดเซสชันคุณสามารถสร้าง. inetloc ได้อย่างง่ายดาย ใน TextEdit ให้พิมพ์ SSH URL ไปยังโฮสต์ของคุณเช่น:

ssh://username@hostname/path

TextEdit จะรับรู้ว่าเป็น URL ลาก URL ไปยังเดสก์ท็อปของคุณและมันจะสร้าง. inetloc ดังนี้:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>URL</key>
    <string>ssh://username@hostname/path</string>
</dict>
</plist>

จากนั้นคุณสามารถวางไฟล์นั้นได้ทุกที่เช่น Dock ของคุณหรือเปิดด้วยตัวเรียกใช้งานเช่น Quicksilver

ฉันอยากจะแนะนำปลั๊กอิน SSH สำหรับ Quicksilver แต่ล่าสุดฉันสามารถค้นหา v.84 ขัดข้อง QS ใหม่กว่าβ54 (3815)


คุณสามารถทำสิ่งนั้นกับพอร์ตได้หรือไม่? เช่นhostname:1234?
Daniel Beck

ใช่. ssh: // ชื่อผู้ใช้ @ hostname: พอร์ตใช้งานได้
Turadg

1

หากคุณใช้ Quicksilver จะมีโปรแกรมเสริมที่เรียกว่า RemoteHosts ซึ่งจะสแกนไฟล์ ~ / .hosts หรือแม้แต่ไฟล์ ~ / .ssh / known_hosts ของคุณโดยอัตโนมัติ

การเชื่อมต่อกับโฮสต์ใหม่นั้นรวดเร็วเหมือนการเปิด Quicksilver (CMD-Space) จากนั้นพิมพ์อักขระที่เพียงพอของโฮสต์ให้มีเอกลักษณ์และสุดท้ายก็กด Enter


0

หากส่วนที่ sucks สำหรับคุณพิมพ์ในคำสั่งยาวและซับซ้อน ssh แต่คุณไม่รังเกียจที่จะเปิด Terminal และด้วยเหตุผลบางอย่างที่คุณไม่ต้องการใช้วิธีการใด ๆ ของคำตอบก่อนหน้านี้คุณสามารถใช้ นามแฝงหรือฟังก์ชั่น เพิ่มสิ่งนี้เพื่อเปลือก dotfile (.profile หรือ. bash_profile หรือ. bashrc หรือ. csrc หรือ. zshrc หรืออะไรก็ตาม):

alias connect.dev='ssh -p 12345 yourusername@dev.somehost.net'

ข้อดีอย่างเดียวที่ฉันเห็นได้จากวิธีอื่นคือ (อย่างน้อย zsh และฉันคิดว่าทุบตี) คุณสามารถใช้ command command เพื่อดูเซิร์ฟเวอร์ทั้งหมดของคุณเพื่อเชื่อมต่อ ตัวอย่างเช่นสมมติว่าคุณมี 25 เซิร์ฟเวอร์ที่คุณเชื่อมต่อและคุณไม่ต้องการจดจำชื่อ / นามแฝงทั้งหมดที่คุณให้ไว้ในไฟล์. ssh / config หากนามแฝงทั้งหมดเริ่มต้นด้วยสิ่งเดียวกันเช่น 'เชื่อมต่อ' คุณเพียงพิมพ์การเชื่อมต่อ [TAB] ที่พร้อมท์คำสั่งและคุณจะเห็นความสำเร็จที่เป็นไปได้ทั้งหมด (ข้อจำกัดความรับผิดชอบ: คุณอาจต้องทำการปรับแต่งเชลล์เพื่อให้ทำงานได้ แต่ฉันเชื่อว่ามันจะทำงานตามค่าเริ่มต้นใน zsh และอาจจะเป็น bash เช่นกัน)

หากส่วนที่ sucks สำหรับคุณกำลังเปิด Terminal คุณสามารถลองใช้บางอย่างเช่นDuckBillแม้ว่าเหตุผลเดียวที่ฉันคิดว่าจะเรียกใช้ ssh OUTSIDE ของ Terminal อาจเป็นไปได้สำหรับการเรียกใช้โปรแกรมเซิร์ฟเวอร์ X Windows หรืออุโมงค์ ssh


0

คุณสามารถสร้างไฟล์ในไดเรกทอรีถังขยะในพื้นที่ของคุณ

/usr/local/bin/dev

ด้วยเนื้อหาดังต่อไปนี้:

#!/bin/bash
ssh -p 12345 username@www.mydomain.com 

ทำให้ปฏิบัติการได้

chmod a+x /usr/local/bin/dev

ซึ่งคุณสามารถโทรจากเทอร์มินัลโดยใช้

dev

จากนั้นคุณสร้างงานอัตโนมัติเพื่อเปิด

tell application "Finder" to set theSel to selection

tell application "Terminal"
    set theFol to POSIX path of ((item 1 of theSel) as text)
    if (count of windows) is not 0 then
        do script "/usr/local/bin/dev2" in window 1
    else
        do script "/usr/local/bin/dev2"
    end if
    activate
end tell

คุณยังสามารถสร้างทางลัดจากตัวเรียกใช้งานหรือปุ่มลัดบนคีย์บอร์ดของคุณ

ตัวเรียกใช้: ไอคอนลากจากบันทึกอัตโนมัติลงใน dockbar

แป้นพิมพ์ลัด:

create as service in automator
open system services -> keyboard -> shortcuts -> app shortcuts -> enter title of automator and key shortcut 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.