Come cambiare ciò che usa ssh: //?


9

Sembra che ci siano due diverse versioni client SSH sul mio Macbook Pro con Sierra (10.12.4). Se faccio quanto segue:

$> ssh dev

Funziona bene. Tuttavia, se faccio quanto segue:

$> open ssh://dev

Apre un nuovo terminale che poi si lamenta delle impostazioni di crittografia nel mio ssh_configfile. Studiando i reclami specifici, ho scoperto che l'apertura tramite il gestore di protocollo sta utilizzando una versione precedente di SSH.

Come cambio a quale client SSH reindirizza il protocollo?


1
Cosa ottieni quando digiti "what ssh" e cosa ottieni quando digiti "ps aux | grep ssh" dopo aver eseguito il secondo comando?
Brethil,

Quale ssh: /usr/local/bin/ssh il processo SSH si uccide dopo averlo eseguito con il secondo metodo, non sono sicuro di come lo terrei in vita per vederlo nell'elenco dei processi.
Joshua Gilman,

Risposte:


4

Puoi utilizzare uno strumento molto comodo per modificare l'app predefinita per gestori di URL specifici.

Modifica lo schema URL ssh con RCDefaultApp

  1. Scarica RCDefaultApp versione 2.1
  2. Installa il riquadro delle preferenze
  3. Vai a Preferenze di Sistema> App predefinite> URL
  4. Vai a "ssh"
  5. Sul lato destro, selezionare l'applicazione preferita

Sembrerà molto simile a questo screenshot:

Schermata di RCDefaultApp che mostra il riquadro delle preferenze


Il problema non si basa sull'applicazione terminale, ma piuttosto su quale binario SSH viene chiamato. Posso cambiare l'applicazione per aprire iTerm invece di Terminal e il problema persiste ancora.
Joshua Gilman,

1

Per rispondere alla tua domanda sulla modifica del client protocollo ssh: //,

Per https://superuser.com/a/548122/202319 , è possibile modificare ~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plistper aprire qualsiasi app con un identificativo registrato quando si incontra ssh: // o un altro URL.

Questa non è una soluzione perfetta, perché richiede ancora un pacchetto di app o utilizzerà Terminal.app (che è già quello che vedi).

Tuttavia, dovresti essere in grado di correggere i tuoi file .login o .bashrc in modo che la shell Terminal.app predefinita utilizzi sshcomunque il tuo preferito .


1
Puoi approfondire le .logine .bashrcconfigurazione cambiamenti? Il problema non è quale app terminale viene aperta, ma piuttosto quale binario SSH viene eseguito. La chiamata sshall'interno di una sessione terminale chiama un binario, ma il terminale che apre la connessione tramite il protocollo sta chiamando un altro binario SSH.
Joshua Gilman,

0

Non ho mac da controllare in questo momento ma la mia ipotesi è:

Mac viene fornito con client ssh / usr / bin / ssh

Hai installato la versione più recente su / usr / local / bin / ssh

Puoi provare a rimuovere / usr / bin / ssh o riorganizzare l'ordine di $ Path in modo che scelga prima / usr / local / bin / ssh


Sfortunatamente Apple ha ucciso la possibilità di toccare le cose in / usr / bin. Avevo già provato a riordinare la variabile PATH per mettere in anticipo il mio bin locale, ma sembra che il protocollo ssh: // stia esplicitamente chiamando / usr / bin / ssh poiché la modifica non ha funzionato.
Joshua Gilman,

puoi disabilitare SIP in modalità di recupero:csrutil disable
Michał Gąsior,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.