GitのSSHポートを指定する


17

接続するサーバーのほとんどに、非標準のsshポート(1234)を使用しています。だから私のssh設定ファイルには次のものがあります:

Port 1234

しかし、github.comはポート22を使用します。githubに接続しようとすると、明らかにポート1234を使用しようとします。今は、sshの設定を編集して機能させる必要があります。

これが私のgit configからの抜粋です:

[remote "origin"]
        url = git@github.com:asdf/asdf.git

回答:


26

〜/ .ssh / configファイルを正しくセットアップする方法をご覧ください(man 5 ssh_config)。ホストごとに異なる設定を簡単に指定できます。あなたの問題を解決するには、あなたが設定します

Host github.com
Port 22
Host *
Port 1234

ssh_configのマニュアルページをご覧ください。最初の数ページで知っておく必要があるすべてのことを説明しています。


24

セクションを設定するの~/.ssh/configは良い解決策ですが、別の方法を知っておくと便利な場合があります。

一般的なscpのような構文にuser@host:pathはポートの場所がありませんが、Git ssh:はポートの指定に使用できるURLスキームもサポートしています。

ssh://git@github.com:22/asdf/asdf.git

一方でssh:URLにポートの仕様をサポートし、それが(例えばへの直接対応はありません相対パスをサポートしていませんscpコマンドの構文様user@host:pathどこpathスラッシュで始まっていないが)。

GitHubは相対パスと絶対パスを同じように扱うため、それらに対しては機能しますが、すべてのSSHベースのGitリポジトリに対しては機能しない場合があります。単純なSSHベースのホスティングの場合は、挿入する/home/username//Users/username/、相対パスから絶対パスに切り替える必要があります。一部のホスティングシステムは絶対パスをまったく処理しない場合があります(このようなサポートの欠如をバグと呼ぶ傾向があります)。


ありがとう、クリス。私のssh設定をいじる必要がないので、このパスが一番好きです。ありがとう!
ジェームズウォード

1
fyi、サーバーに「裸の」リポジトリがある場合、接続文字列はssh://git@github.com:22/asdf/asdf(.gitなしで)より類似したものになります
-Xeoncross

3

(質問した直後に答えを見つけたら、それを愛してください。)

グローバル設定ではなく、各ホストのポートを指定するようにssh構成を変更しました。

Host asdf.com
    Port 1234

Host github.com
    User git
    Hostname github.com
    Port 22

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.