似たようなことが何度も聞かれたことは知っていますが、私の場合に適切な解決策を見つけることができませんでした。
非標準ポートでssh経由でアクセスできるカスタムgitリポジトリがあります。 URLは次のようなものです:
git clone ssh://[email protected]:12345/path/to/repo/project.git
そのリポジトリの秘密鍵は~/.ssh/myname.prv
にあります。
パスワードなしでリポジトリにアクセスしようとしていますが、失敗します。
私の現在の~/.ssh/config
にはスタンザがあります:
Host git
HostName my.repo.Host
Port 12345
User myname
IdentityFile ~/.ssh/myname.prv
...しかし、gitはまだPWを要求します。
何が足りないのですか?
注:サーバーとクライアントはどちらもかなり最近のLinuxマシンであり、重要な場合はコマンドラインで作業しています。
~/.ssh/config
ファイルの使用法を誤解していると思います。あなたが持っている:
Host git
HostName my.repo.Host
...
ただし、最初の行Host git
は、接続するホストの名前(エイリアス)(つまり、git
)と、コマンドラインでssh
またはgit
に指定する名前を定義します。つまり、これでgitリモートサーバーにssh
を介して
ssh git
...そして、次を使用して「カスタム」ホスト名を使用してgitリポジトリのクローンを作成できます。
git clone ssh://git/path/to/repo/project.git
これで、リモートはOrigin
を正確にそのアドレスとしてリストすることに注意してください。これは、ssh
構成ファイルに依存します。
または、gitremoteのアドレスにmy.repo.Host
を保持したい場合は、~/.ssh/config
を次のように変更します。
Host my.repo.Host
#HostName my.repo.Host
Port 12345
User myname
IdentityFile ~/.ssh/myname.prv
(注:この場合、HostName
ディレクティブは冗長であるため、コメントアウトしたままにしました。)
これにより、以下を使用してリモートとクローンを簡素化できます。
git clone ssh://my.repo.Host/path/to/repo/project.git