私は見た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で動作します。
証明書ファイル 制御パス アイデンティティブローカー 身分証明書 地域配信 マッチ実行 リモートコマンド リモート転送 ユーザーが知っているホストファイル プロキシコマンド