วิธีการเปลี่ยนสิ่งที่ ssh: // ใช้?


9

ดูเหมือนว่าจะมีสองเวอร์ชันไคลเอ็นต์ SSH ที่แตกต่างกันใน Macbook Pro ของฉันที่ใช้ Sierra (10.12.4) ถ้าฉันทำต่อไปนี้:

$> ssh dev

มันใช้งานได้ดี อย่างไรก็ตามถ้าฉันทำต่อไปนี้:

$> open ssh://dev

มันเปิดเทอร์มินัลใหม่ซึ่งบ่นเกี่ยวกับการตั้งค่าการเข้ารหัสในssh_configไฟล์ของฉัน จากการศึกษาข้อร้องเรียนเฉพาะฉันพบว่าการเปิดผ่านตัวจัดการโปรโตคอลกำลังใช้ SSH เวอร์ชันเก่ากว่า

ฉันจะเปลี่ยนไคลเอนต์ SSH ที่โปรโตคอลเปลี่ยนเส้นทางไปได้อย่างไร


1
คุณจะได้อะไรเมื่อคุณพิมพ์ "ซึ่ง ssh" และสิ่งที่คุณจะได้รับเมื่อคุณพิมพ์ "ps aux | grep ssh" หลังจากเรียกใช้คำสั่งที่สอง?
Brethil

อันไหน ssh: /usr/local/bin/ssh กระบวนการ SSH ฆ่าตัวเองหลังจากรันด้วยวิธีที่สองฉันไม่แน่ใจว่าฉันจะทำให้มันมีชีวิตอยู่เพื่อดูในรายการกระบวนการ
Joshua Gilman

คำตอบ:


4

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

เปลี่ยนรูปแบบ ssh URL ด้วย RCDefaultApp

  1. ดาวน์โหลดRCDefaultAppเวอร์ชัน2.1
  2. ติดตั้งบานหน้าต่างการตั้งค่า
  3. ไปที่การตั้งค่าระบบ> แอปเริ่มต้น> URL
  4. ไปที่ "ssh"
  5. ที่ด้านขวาให้เลือกแอปพลิเคชันที่คุณต้องการ

มันจะมีลักษณะคล้ายกับภาพหน้าจอนี้มาก:

ภาพหน้าจอ RCDefaultApp ที่แสดงบานหน้าต่างการตั้งค่า


ปัญหาไม่ได้ขึ้นอยู่กับแอปพลิเคชันเทอร์มินัล แต่เรียกว่าไบนารี SSH ใด ฉันสามารถเปลี่ยนแอปพลิเคชันเพื่อเปิด iTerm แทน Terminal ได้และปัญหายังคงมีอยู่
Joshua Gilman

1

หากต้องการตอบคำถามของคุณเกี่ยวกับการเปลี่ยนไคลเอ็นต์ ssh: //

ตามhttps://superuser.com/a/548122/202319คุณสามารถแก้ไข~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plistเพื่อเปิดแอพใด ๆ ที่มีตัวระบุที่ลงทะเบียนเมื่อ ssh: // หรือพบ URL อื่น

นี่ไม่ใช่โซลูชันที่สมบูรณ์แบบเพราะยังต้องใช้ชุดแอพหรือจะใช้ Terminal.app (ซึ่งเป็นสิ่งที่คุณเห็นอยู่แล้ว)

แต่คุณควรจะสามารถที่จะแก้ไข .login หรือไฟล์ .bashrc ของคุณเพื่อเริ่มต้น Terminal.app เปลือกจะใช้ที่คุณต้องการsshอยู่แล้ว


1
คุณสามารถอธิบาย.loginและกำหนดค่า.bashrcการเปลี่ยนแปลงได้หรือไม่? ปัญหาไม่ใช่แอปเทอร์มินัลใดที่กำลังเปิดอยู่ แต่กำลังดำเนินการ SSH ไบนารี การโทรsshภายในเซสชันเทอร์มินัลจะเรียกหนึ่งไบนารี แต่มีเทอร์มินัลเปิดการเชื่อมต่อผ่านโปรโตคอลกำลังเรียกไบนารี SSH อื่น
Joshua Gilman

0

ฉันไม่มีแม็คที่จะตรวจสอบตอนนี้ แต่ฉันเดาว่า:

Mac มาพร้อมกับไคลเอนต์ ssh / usr / bin / ssh

คุณติดตั้งเวอร์ชันที่ใหม่กว่าใน / usr / local / bin / ssh

คุณสามารถลองลบ / usr / bin / ssh หรือจัดเรียงลำดับใหม่ของ $ Path ดังนั้นมันจะเลือก / usr / local / bin / ssh ก่อน


น่าเสียดายที่ Apple ฆ่าความสามารถในการสัมผัสสิ่งของใน / usr / bin ฉันได้ลองจัดเรียงตัวแปร PATH อีกครั้งเพื่อให้ bin ในเครื่องของฉันตรงไปข้างหน้า แต่ดูเหมือนว่าโปรโตคอล ssh: // จะเรียก / usr / bin / ssh อย่างชัดเจนเนื่องจากการเปลี่ยนแปลงไม่ทำงาน
Joshua Gilman

คุณสามารถถ้าคุณปิดการใช้งาน SIP ในโหมดการกู้คืน:csrutil disable
MichałGąsior
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.