ssh://が使用するものを変更するには?


9

Sierra(10.12.4)を実行しているMacbook Proには、2つの異なるSSHクライアントバージョンがあるようです。次の場合:

$> ssh dev

それはうまくいきます。ただし、次の場合:

$> open ssh://dev

新しい端末が開き、ssh_configファイルの暗号化設定についてメッセージが表示されます。特定の苦情を調査し​​たところ、プロトコルハンドラーを介して開くには古いバージョンのSSHを使用していることがわかりました。

プロトコルがリダイレクトするSSHクライアントを変更するにはどうすればよいですか?


1
2番目のコマンドを実行した後、「which ssh」と入力すると何が得られ、「ps aux | grep ssh」と入力すると何が得られますか?
Brethil、2017年

どのssh:/usr/local/bin/ssh SSHプロセスは、2番目の方法を実行した後にそれ自体を強制終了します。プロセスリストに表示するために、それをどのように存続させるかはわかりません。
ジョシュアギルマン2017年

回答:


4

特定のURLハンドラーのデフォルトアプリを変更するのに非常に快適なツールを使用できます。

RCDefaultAppでssh URLスキームを変更する

  1. RCDefaultAppバージョン2.1をダウンロード
  2. プリファレンスペインをインストールする
  3. [システム環境設定]> [デフォルトのアプリ]> [URL]に移動します
  4. 「ssh」に移動
  5. 右側で、使用するアプリケーションを選択します

それはこのスクリーンショットに非常に似ています:

設定ペインを示すRCDefaultAppスクリーンショット


問題は、ターミナルアプリケーションではなく、どのSSHバイナリが呼び出されているかによるものです。ターミナルではなくiTermを開くようにアプリケーションを変更しても問題は解決しません。
ジョシュアギルマン2017年

1

ssh://プロトコルクライアントの変更に関する質問に答えるには、

パーhttps://superuser.com/a/548122/202319、あなたが変更することができます~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist//または別のURLに遭遇します。ssh時に登録した識別子を持つすべてのアプリを開きます。

これはまだApp Bundleを必要とするか、Terminal.appを使用するため(これはすでに表示されているものです)、完全なソリューションではありません。

ただし、.loginファイルまたは.bashrcファイルを修正して、デフォルトのTerminal.appシェルが優先的に使用されるようにする必要がありますssh


1
.loginおよび構成の.bashrc変更について詳しく説明できますか?問題は、開かれているターミナルアプリではなく、実行されているSSHバイナリです。呼び出しssh端末セッション内では、1つのバイナリを呼び出しますが、プロトコルを介した接続は、別のSSHバイナリを呼び出して、端末の開口部を持っています。
ジョシュアギルマン2017年

0

現在確認するMacはありませんが、私の推測は次のとおりです。

Macにはsshクライアント/ usr / bin / sshが付属しています

/ usr / local / bin / sshに新しいバージョンをインストールした

/ usr / bin / sshを削除するか、$ Pathの順序を並べ替えて、最初に/ usr / local / bin / sshを選択することができます。


残念ながら、Appleは/ usr / binにあるものに触れる機能を無効にしました。私はすでにPATH変数を再配置してローカルbinを前面に配置しようとしましたが、変更が機能しなかったため、ssh://プロトコルが明示的に/ usr / bin / sshを呼び出しているようです。
Joshua Gilman、

リカバリモードでSIPを無効にすると、次のことができます。csrutil disable
MichałGąsior17年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.