¿Cómo cambiar lo que ssh: // usa?

9

Parece que hay dos versiones diferentes de cliente SSH en mi Macbook Pro con Sierra (10.12.4). Si hago lo siguiente:

$> ssh dev

Funciona bien Sin embargo, si hago lo siguiente:

$> open ssh://dev

Abre un nuevo terminal que luego se queja de la configuración de cifrado en mi ssh_configarchivo. Investigando las quejas específicas, descubrí que abrir a través del controlador de protocolo está utilizando una versión anterior de SSH.

¿Cómo cambio a qué cliente SSH redirige el protocolo?

Joshua Gilman
fuente
1
¿Qué obtienes cuando escribes "which ssh" y qué obtienes cuando escribes "ps aux | grep ssh" después de ejecutar el segundo comando?
Brethil
Qué ssh: /usr/local/bin/ssh el proceso SSH se suicida después de ejecutarlo con el segundo método, no estoy seguro de cómo lo mantendría vivo para verlo en la lista de procesos.
Joshua Gilman

Respuestas:

4

Puede usar una herramienta que sea muy cómoda para cambiar la aplicación predeterminada para controladores de URL específicos.

Cambiar el esquema de URL ssh con RCDefaultApp

  1. Descargar RCDefaultApp Versión 2.1
  2. Instale el panel de preferencias
  3. Vaya a Preferencias del sistema> Aplicaciones predeterminadas> URL
  4. Ir a "ssh"
  5. En el lado derecho, seleccione su aplicación preferida

Se verá muy similar a esta captura de pantalla:

RCDefaultApp Captura de pantalla que muestra el panel de preferencias

oa-
fuente
El problema no se basa en la aplicación de terminal, sino en qué binario SSH se llama. Puedo cambiar la aplicación para abrir iTerm en lugar de Terminal y el problema aún persiste.
Joshua Gilman
1

Para responder a su pregunta sobre cómo cambiar el cliente de protocolo ssh: //,

Según https://superuser.com/a/548122/202319 , puede modificar ~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plistpara abrir cualquier aplicación con un identificador registrado cuando se encuentra ssh: // u otra URL.

Esta no es una solución perfecta, porque todavía requiere un paquete de aplicaciones, o usará Terminal.app (que es lo que ya ve).

Pero, debería poder arreglar sus archivos .login o .bashrc para que el shell Terminal.app predeterminado use su preferido de sshtodos modos.

Kent
fuente
1
Se puede elaborar en los .loginy .bashrcconfiguración de los cambios? El problema no es qué aplicación de terminal se está abriendo, sino qué binario SSH se está ejecutando. Llamar sshdentro de una sesión de terminal llama a un binario, pero el terminal que abre la conexión a través del protocolo está llamando a otro binario SSH.
Joshua Gilman
0

No tengo mac para verificar en este momento, pero mi suposición es:

Mac viene con cliente ssh / usr / bin / ssh

Instaló una versión más nueva en / usr / local / bin / ssh

Puede intentar eliminar / usr / bin / ssh o reorganizar el orden de $ Path para que primero seleccione / usr / local / bin / ssh

Michał Gąsior
fuente
Desafortunadamente, Apple eliminó la capacidad de tocar cosas en / usr / bin. Ya había intentado reorganizar la variable PATH para poner mi bin local por adelantado, pero parece que el protocolo ssh: // está llamando explícitamente a / usr / bin / ssh ya que el cambio no funcionó.
Joshua Gilman
puede csrutil disable
hacerlo