Jak zmienić to, czego używa ssh: //?

9

Wydaje się, że na moim Macbooku Pro z Sierra (10.12.4) są dwie różne wersje klienta SSH. Jeśli wykonam następujące czynności:

$> ssh dev

Działa dobrze. Jeśli jednak wykonam następujące czynności:

$> open ssh://dev

Otwiera nowy terminal, który następnie skarży się na ustawienia szyfrowania w moim ssh_configpliku. Badając konkretne skargi, dowiedziałem się, że otwieranie przez moduł obsługi protokołu używa starszej wersji SSH.

Jak zmienić klienta SSH, do którego przekierowuje protokół?

Joshua Gilman
źródło
1
Co otrzymujesz, gdy wpiszesz „which ssh”, a co otrzymasz, gdy wpiszesz „ps aux | grep ssh” po uruchomieniu drugiego polecenia?
Brethil
Które ssh: /usr/local/bin/ssh proces SSH zabija się po uruchomieniu go za pomocą drugiej metody, nie jestem pewien, jak utrzymałbym go przy życiu, aby zobaczyć go na liście procesów.
Joshua Gilman

Odpowiedzi:

4

Możesz użyć narzędzia, które jest bardzo wygodne, aby zmienić domyślną aplikację dla określonych programów obsługi adresów URL.

Zmień schemat adresu URL ssh za pomocą RCDefaultApp

  1. Pobierz RCDefaultApp wersja 2.1
  2. Zainstaluj okienko preferencji
  3. Przejdź do Preferencji systemowych> Domyślne aplikacje> Adresy URL
  4. Idź do „ssh”
  5. Po prawej stronie wybierz preferowaną aplikację

Będzie wyglądał bardzo podobnie do tego zrzutu ekranu:

RCDefaultApp Zrzut ekranu pokazujący panel preferencji

oa-
źródło
Problem nie jest oparty na aplikacji terminalowej, ale raczej o tym, który program binarny SSH jest wywoływany. Mogę zmienić aplikację, aby otworzyć iTerm zamiast terminala, a problem nadal występuje.
Joshua Gilman
1

Aby odpowiedzieć na pytanie dotyczące zmiany klienta protokołu ssh: //,

Na https://superuser.com/a/548122/202319 możesz zmodyfikować, ~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plistaby otworzyć dowolną aplikację z zarejestrowanym identyfikatorem, gdy napotkasz ssh: // lub inny adres URL.

To nie jest idealne rozwiązanie, ponieważ wciąż wymaga pakietu aplikacji lub będzie korzystało z Terminal.app (co już widać).

Ale powinieneś być w stanie naprawić swoje pliki .login lub .bashrc, aby domyślna powłoka Terminal.app i tak użyła preferowanego pliku ssh.

Kent
źródło
1
Czy możesz opracować zmiany .logini .bashrczmiany konfiguracji? Problemem nie jest to, która aplikacja terminalowa jest otwierana, ale który plik binarny SSH jest wykonywany. Wywołanie sshw sesji terminala wywołuje jeden plik binarny, ale jeśli terminal otwiera połączenie za pośrednictwem protokołu, wywołuje inny plik binarny SSH.
Joshua Gilman
0

Nie mam teraz komputera Mac do sprawdzenia, ale zgaduję, że:

Mac jest dostarczany z klientem ssh / usr / bin / ssh

Zainstalowałeś nowszą wersję na / usr / local / bin / ssh

Możesz spróbować usunąć / usr / bin / ssh lub zmienić kolejność w $ Path, aby najpierw wybrać / usr / local / bin / ssh

Michał Gąsior
źródło
Niestety, Apple zabił możliwość dotykania rzeczy w / usr / bin. Próbowałem już przeorganizować zmienną PATH, aby umieścić mój lokalny bin z góry, ale wygląda na to, że protokół ssh: // wyraźnie wywołuje / usr / bin / ssh, ponieważ zmiana nie zadziałała.
Joshua Gilman
możesz, jeśli wyłączysz SIP w trybie odzyskiwania:csrutil disable
Michał Gąsior