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ół?


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


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.


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


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.