LoginSignup
6
7

More than 3 years have passed since last update.

.ssh/configで、IPv4とIPv6指定する方法

Last updated at Posted at 2020-12-02

最近はサービスをIPv4、IPv6の両方で提供しているケースも多いですよね。
でも、ssh接続ではIPv4でのみ接続許可のままなんて設定のサーバなどあると思います。

そんな場合、アドレスファミリーを指定しないで接続すると場合によってはIPv6で接続され、タイムアウトしclient_loop: send disconnect: Broken pipeなんて言われちゃうケースもあるのでは?

なのでアドレスファミリを指定するsshオプションのメモ書きです。

まずはIPv4、IPv6を指定してSSH接続する方法

sshコマンドで、アドレスファミリーを指定するオプションは以下の通り。

アドレスファミリー オプション
IPv4 -4
IPv6 -6

例えばIPv4を指定してssh接続するときは、以下のように指定します。

$ ssh -4 -i ~/.ssh/id_rsa -p 1234 -l hage www.hoge.com

ちなみに上記のその他のオプションは参考までに

オプション

オプション 内容
-i 秘密鍵を指定
-p ポート番号を指定
-l ログインユーザー名を指定

.ssh/configでIPv4、Ipv6を指定する方法

さて、本題のアドレスファミリの指定の書式は以下となります。

AddressFamily [接続アドレスファミリ]

設定値

AddressFamily 設定値
default any
Ipv4 inet
Ipv6 inet6

config記述例(IPv4を指定)

Host hoge
    HostName www.hoge.net
    User hage
    Port 1234
    IdentityFile ~/.ssh/id_rsa
    ServerAliveInterval 60
    AddressFamily inet

ここまで設定しておけば、接続は以下のコマンドで済みます

$ ssh hoge

以上です。

man ssh_configでも確認できますね。

   AddressFamily
             Specifies which address family to use when connecting.  Valid arguments are any (the default), inet (use
             IPv4 only), or inet6 (use IPv6 only).
6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7