ssh%_expand トークン %n が機能しません

ssh%_expand トークン %n が機能しません

私は見たssh_configマニュアルページとSSHを開く私が利用できるウェブサイト%nトークン特定のホスト項目のIDファイルを照会するとき。

OpenSSHのssh(1)とsshd(8)で使用されるパーセント_拡張トークン

GitHub では SSH トークンを配布トークンとして使用できますが、複数のリポジトリでトークンを複数回使用することはできません.したがって、生成する必要がある別々のプロジェクトキーの数に関係なく、ワイルドカードを使用して単一のプロファイルを作成したいと思います。

host github-*      
    Hostname github.com
    User git
    IdentityFile %d/.ssh/github/%n
    IdentitiesOnly yes

その後、このディレクトリにgithub-MyPackage公開鍵と秘密鍵のペアを配置しました~/.ssh/github/

ワイルドカードプロファイルを見つけて%dはうまく機能しますが、元のコマンドラインで指定されたホストエイリアスからIDファイル名を見つけるために%nを使用してgit cloneを実行しようとすると、次のようになります。

> git clone github-MyPackage:/myorganization/MyPackage.git

Cloning into 'MyPackage'...
percent_expand: unknown key %n
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

これは、gitがアクセスする方法だけでなく、単純なsshコマンドでも失敗するためです。

> ssh github-MyPackage
percent_expand: unknown key %n

インターネットを検索しようとしましたが、%nで何も見つかりませんでした。これは完全に実装されていませんか?それとも私が何か間違っていますか?

答え1

SSHバージョンが古すぎるかもしれません。確認してみてくださいssh -V

OpenSSH_7.9p1は%n特定のキーワードのみをサポートします(ローカルインストールのマニュアルページから):

マッチ実行
制御パス
ローカルコマンド
リモートコマンド

このトークンをに追加した特定のバージョンは不明ですが、IdentityFileより多くのキーワードについてはOpenSSH_8.9p1で動作します。

証明書ファイル
制御パス
アイデンティティブローカー
身分証明書
地域配信
マッチ実行
リモートコマンド
リモート転送
ユーザーが知っているホストファイル
プロキシコマンド

関連情報