.ssh/config
SSHで異なるサーバーに接続するように構成されたファイルがあります。
###
# Identity files
###
IdentityFile ~/.ssh/id_dsa_home
IdentityFile ~/.ssh/id_dsa_github
IdentityFile ~/.ssh/id_rsa_bitbucket
###
# Global options
###
PasswordAuthentication no
PubkeyAuthentication yes
Host *
Port 22
Host icarus
User elitalon
HostName 192.168.1.1
Port 54301
Host zeus
User elitalon
HostName 192.168.2.1
Port 54302
Host github
User git
HostName github.com
Host bitbucket
User git
HostName bitbucket.org
この構成は、以前は正常に機能していました。ただし、Mac OS X Mountain Lionにアップグレードしたため、SSHはエントリの特定のPort
値に関して異なる動作をしHost
ます。
zeus
SSH に接続しようとすると、54301ではなく常にポート22が使用されます。- エントリなしで削除
Port 22
して接続しようとすると、SSHは最初の値セット(この例では54301)を使用します。Host
Port
Port
さまざまな組み合わせを試した後、SSHはすべての構成ファイルを処理するように見えますが、Port
指定された最初の値のみを取ります。これは、manページによると予期される動作です。
各パラメーターに対して、最初に取得された値が使用されます
しかし、manページには、
構成ファイルには「ホスト」仕様で区切られたセクションが含まれており、そのセクションは仕様で指定されたパターンのいずれかに一致するホストにのみ適用されます。
そのため、Port
値を指定しないと、実際に値があるセクションでのみデフォルトのポートが変更されると考えましたPort
。
それでは、Host
別の値が指定されている場合を除き、ポート22を使用するようにエントリを設定するにはどうすればよいですか?
ありがとう!