VPSプロバイダーは、SSHポートをデフォルトで割り当てたカスタムポート番号(22ではなく)のままにすることを推奨しています。問題は、リモート構成を作成するときにポート番号を与えることができることを知っている間ですが、gitクローンを行うと同じことはできないようです。私はgitoliteを使用しているので、クローンコマンドは次のようになります。
git clone [email protected]:gitolite-admin
これをカスタムsshポート番号を使用するように変換する方法はありますか?
Windowsでcygwinを実行しています。私は~/.ssh/config
ファイルにカスタムポートを追加するように言っている複数の場所を見ました
Host mydomain.com
Port 12345
ただし、cygwinでは、そのファイルは存在しないようです。
git clone ssh://[email protected]:[port]/gitolite-admin
ポート番号は角括弧なしでそこにある必要があることに注意してください:[]
ホームディレクトリからの相対パスが必要な場合(UNIXの場合)、次の奇妙な構文を使用します。
ssh://[user@]Host.xz[:port]/~[user]/path/to/repo
たとえば、レポジトリがサーバーの/home/jack/projects/jillweb
にありjill.com
であり、ポート4242でリッスンしているjack
でsshd
としてログインしている場合:
ssh://[email protected]:4242/~/projects/jillweb
そして、jill
としてログインするとき(ファイルのアクセス権があると仮定):
ssh://[email protected]:4242/~jack/projects/jillweb
(更新:数年後、「git non-default ssh port」を検索するときに、GoogleとQwantの「airlines」はまだここに私を送ります)新しいgitバージョンでおそらくより良い方法は、GIT_SSH_COMMAND ENV.VARを次のように使用することです:
GIT_SSH_COMMAND="ssh -oPort=1234 -i ~/.ssh/myPrivate_rsa.key" \ git clone myuser@myGitRemoteServer:/my/remote/git_repo/path
これには、他のsshに適したオプション(ポート、priv.key、IPv6、PKCS#11デバイスなど)を許可するという追加の利点があります。
上記の答えは素晴らしく素晴らしいですが、私のような新しいgitユーザーにとっては明確ではありません。いくつかの調査の後、この新しい答えを提供します。
構成ファイルが存在しない場合は、作成できます。 port
に加えて、設定ファイルには他のssh設定オプションを含めることができます:user
IdentityFile
など、設定ファイルは次のようになります。
Host mydomain.com
User git
Port 12345
Linuxを実行している場合は、設定ファイルに厳密な許可が必要であることに注意してください。ユーザーの読み取り/書き込みが可能で、他のユーザーはアクセスできません。
クールです、知っておくべき唯一のことは、gitにssh urlの2つの構文があることです
ssh://[user@]Host.xz[:port]/path/to/repo.git/
[user@]Host.xz:path/to/repo.git/
デフォルトでは、GitlabとGithubはscpのような構文 urlを表示し、カスタムsshポートを指定できません。そのため、sshポートを変更するには、標準構文を使用する必要があります