web-dev-qa-db-ja.com

非標準ポートでgit用に.ssh / configを設定する方法

似たようなことが何度も聞かれたことは知っていますが、私の場合に適切な解決策を見つけることができませんでした。

非標準ポートで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マシンであり、重要な場合はコマンドラインで作業しています。

1
ZioByte

~/.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
3
crimson-egret