Як змінити те, що використовує ssh: //?


9

Здається, у моєму Macbook Pro під керуванням Sierra (10.12.4) є дві різні клієнтські версії SSH. Якщо я виконую наступне:

$> ssh dev

Це працює просто чудово. Однак якщо я виконую наступне:

$> open ssh://dev

Він відкриває новий термінал, який потім скаржиться на параметри шифрування в моєму ssh_configфайлі. Досліджуючи конкретні скарги, я виявив, що для відкриття через обробник протоколів використовується старіша версія SSH.

Як я можу змінити, до якого клієнта SSH протокол перенаправляє?


1
Що ви отримуєте, коли набираєте "який ssh" і що ви отримуєте, коли набираєте "ps aux | grep ssh" після виконання другої команди?
Бретіль

Який ssh: /usr/local/bin/ssh Процес SSH вбиває себе після запуску за допомогою другого методу, я не впевнений, як би зберегти його живим, щоб побачити його у списку процесів.
Джошуа Гілман

Відповіді:


4

Ви можете використовувати інструмент, який дуже зручно змінювати додаток за замовчуванням для конкретних обробників URL-адрес.

Змініть схему URL-адреси ssh за допомогою RCDefaultApp

  1. Завантажте RCDefaultApp версії 2.1
  2. Встановіть панель налаштувань
  3. Перейдіть до Налаштування системи> Програми за замовчуванням> URL-адреси
  4. Перейдіть до "ssh"
  5. У правій частині виберіть бажану програму

Це буде схоже на цей знімок екрана:

Скріншот RCDefaultApp, що показує область налаштування


Проблема не ґрунтується на термінальній програмі, а в тому, який бінарний SSH викликається. Я можу змінити додаток, щоб відкрити iTerm замість Terminal, і проблема все ще зберігається.
Джошуа Гілман

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.
Джошуа Гілман

0

Зараз у мене немає Mac для перевірки, але я здогадуюсь:

Mac постачається з ssh client / usr / bin / ssh

Ви встановили новішу версію в / usr / local / bin / ssh

Ви можете спробувати видалити / usr / bin / ssh або змінити порядок $ Path, щоб спочатку вибрати / usr / local / bin / ssh


На жаль, Apple вбила можливість торкатися матеріалів у / usr / bin. Я вже намагався перевпорядкувати змінну PATH, щоб поставити свою локальну скриньку, але здається, що протокол ssh: // явно викликає / usr / bin / ssh, оскільки зміна не працювала.
Джошуа Гілман

ви можете, якщо вимкнути SIP у режимі відновлення:csrutil disable
Michał Gąsior
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.