Comment changer ce que ssh: // utilise?

9

Il semble y avoir deux versions différentes du client SSH sur mon Macbook Pro exécutant Sierra (10.12.4). Si je fais ce qui suit:

$> ssh dev

Cela fonctionne très bien. Cependant, si je fais ce qui suit:

$> open ssh://dev

Il ouvre un nouveau terminal qui se plaint alors des paramètres de cryptage dans mon ssh_configfichier. En recherchant les plaintes spécifiques, j'ai découvert que l'ouverture via le gestionnaire de protocole utilise une ancienne version de SSH.

Comment changer le client SSH vers lequel le protocole est redirigé?

Joshua Gilman
la source
1
Qu'obtenez-vous lorsque vous tapez "which ssh" et qu'obtenez-vous lorsque vous tapez "ps aux | grep ssh" après avoir exécuté la deuxième commande?
Brethil
Quel ssh: /usr/local/bin/ssh le processus SSH se tue après l'avoir exécuté à travers la deuxième méthode, je ne sais pas comment je le garderais en vie pour le voir dans la liste des processus.
Joshua Gilman

Réponses:

4

Vous pouvez utiliser un outil très confortable pour modifier l'application par défaut pour des gestionnaires d'URL spécifiques.

Modifier le schéma d'URL ssh avec RCDefaultApp

  1. Télécharger RCDefaultApp version 2.1
  2. Installer le volet des préférences
  3. Accédez à Préférences Système> Applications par défaut> URL
  4. Allez dans "ssh"
  5. Sur le côté droit, sélectionnez votre application préférée

Cela ressemblera beaucoup à cette capture d'écran:

Capture d'écran de RCDefaultApp montrant le volet des préférences

oa-
la source
Le problème n'est pas basé sur l'application du terminal, mais plutôt sur le binaire SSH appelé. Je peux changer l'application pour ouvrir iTerm au lieu de Terminal et le problème persiste.
Joshua Gilman
1

Pour répondre à votre question sur la modification du client de protocole ssh: //,

Par https://superuser.com/a/548122/202319 , vous pouvez modifier ~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plistpour ouvrir n'importe quelle application avec un identifiant enregistré lorsque ssh: // ou une autre URL est rencontrée.

Ce n'est pas une solution parfaite, car elle nécessite toujours un bundle d'application, ou utilisera Terminal.app (ce que vous voyez déjà).

Mais, vous devriez pouvoir réparer vos fichiers .login ou .bashrc pour que le shell Terminal.app par défaut utilise de sshtoute façon votre préféré .

Kent
la source
1
Pouvez-vous élaborer sur les changements de configuration .loginet .bashrc? Le problème n'est pas quelle application de terminal est ouverte, mais plutôt quel binaire SSH est en cours d'exécution. L'appel à l' sshintérieur d'une session de terminal appelle un binaire, mais le fait que le terminal ouvre la connexion via le protocole appelle un autre binaire SSH.
Joshua Gilman
0

Je n'ai pas de mac à vérifier en ce moment mais je suppose que:

Mac est livré avec le client ssh / usr / bin / ssh

Vous avez installé une version plus récente sur / usr / local / bin / ssh

Vous pouvez essayer de supprimer / usr / bin / ssh ou réorganiser l'ordre de $ Path pour qu'il choisisse / usr / local / bin / ssh en premier

Michał Gąsior
la source
Malheureusement, Apple a supprimé la possibilité de toucher des éléments dans / usr / bin. J'avais déjà essayé de réorganiser la variable PATH pour mettre mon bac local à l'avance, mais il semble que le protocole ssh: // appelle explicitement / usr / bin / ssh car le changement n'a pas fonctionné.
Joshua Gilman
vous pouvez si vous désactivez SIP en mode de récupération:csrutil disable
Michał Gąsior