Como mudar o que o ssh: // usa?

9

Parece haver duas versões diferentes do cliente SSH no meu Macbook Pro executando o Sierra (10.12.4). Se eu fizer o seguinte:

$> ssh dev

Funciona muito bem. No entanto, se eu fizer o seguinte:

$> open ssh://dev

Ele abre um novo terminal que reclama das configurações de criptografia do meu ssh_configarquivo. Pesquisando as reclamações específicas, descobri que a abertura através do manipulador de protocolo está usando uma versão mais antiga do SSH.

Como altero para qual cliente SSH o protocolo redireciona?

Joshua Gilman
fonte
11
O que você obtém quando digita "qual ssh" e o que obtém quando digita "ps aux | grep ssh" após executar o segundo comando?
Brethil
Qual ssh: /usr/local/bin/ssh o processo SSH se mata depois de executá-lo pelo segundo método, não tenho certeza de como o manteria vivo para vê-lo na lista de processos.
Joshua Gilman

Respostas:

4

Você pode usar uma ferramenta muito confortável para alterar o aplicativo padrão para manipuladores de URL específicos.

Alterar o esquema de URL ssh com RCDefaultApp

  1. Faça o download do RCDefaultApp versão 2.1
  2. Instale o painel de preferências
  3. Vá para Preferências do sistema> Aplicativos padrão> URLs
  4. Vá para "ssh"
  5. No lado direito, selecione seu aplicativo preferido

Será muito parecido com esta captura de tela:

Captura de tela RCDefaultApp mostrando o painel de preferências

oa-
fonte
O problema não é baseado no aplicativo de terminal, mas em qual binário SSH está sendo chamado. Posso alterar o aplicativo para abrir o iTerm em vez do Terminal e o problema ainda persiste.
Joshua Gilman
1

Para responder sua pergunta sobre como alterar o cliente do protocolo ssh: //,

Por https://superuser.com/a/548122/202319 , você pode modificar ~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plistpara abrir qualquer aplicativo com um identificador registrado quando ssh: // ou outro URL for encontrado.

Esta não é uma solução perfeita, pois ainda requer um pacote de aplicativos ou usará o Terminal.app (que é o que você já vê).

Mas você deve consertar seus arquivos .login ou .bashrc para que o shell Terminal.app padrão usasse o seu preferido de sshqualquer maneira.

Kent
fonte
11
Você pode elaborar as alterações .logine .bashrcconfig? O problema não é qual aplicativo de terminal está sendo aberto, mas qual binário SSH está sendo executado. A chamada sshdentro de uma sessão do terminal chama um binário, mas o terminal abre a conexão através do protocolo está chamando outro binário SSH.
Joshua Gilman
0

Não tenho mac para verificar agora, mas meu palpite é:

O Mac vem com o cliente ssh / usr / bin / ssh

Você instalou a versão mais recente em / usr / local / bin / ssh

Você pode tentar remover / usr / bin / ssh ou reorganizar a ordem de $ Path para escolher primeiro / usr / local / bin / ssh

Michał Gąsior
fonte
Infelizmente, a Apple eliminou a capacidade de tocar em coisas em / usr / bin. Eu já havia tentado reorganizar a variável PATH para colocar meu bin local antecipadamente, mas parece que o protocolo ssh: // está explicitamente chamando / usr / bin / ssh, pois a alteração não funcionou.
Joshua Gilman
você pode se desabilitar o SIP no modo de recuperação:csrutil disable
Michał Gąsior