CentOS7へのSSH接続が遅い場合の対処法

プログラミング

Dockerで構築したCentOS7へのSSH接続が遅い場合の対処法です。

CentOS7は以下で構築したものを使用しています。

UseDNS

SSH接続してきたクライアントのIPアドレスを逆引きします。逆引きに時間がかかるためSSHの接続確立も遅くなります。

これはデフォルトでyes(有効)になっているため、no(無効)に設定します。

# 変更前
#ShowPatchLevel no
#UseDNS yes
#PidFile /var/run/sshd.pid

# 変更後
#ShowPatchLevel no
UseDNS no
#PidFile /var/run/sshd.pid

AddressFamily

接続させるIPプロトコル指定を行うことができます。

  • any IPv4とIPv6両方接続可能(初期値)
  • inet IPv4のみ接続可能
  • inet6 IPv6のみ接続可能

IPv6接続が不要の場合はinetを設定することでSSHの接続確立も早くなります。

# 変更前
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0

# 変更後
#Port 22
AddressFamily inet
#ListenAddress 0.0.0.0

GSSAPIAuthentication

GSSAPI (Generic Security Service API) はGSSAPIを使用してSSO(シングルサインオン)する仕組みです。

通常のパスフレーズ接続や公開鍵接続では不要のためno(無効)に設定します。

# 変更前
# GSSAPI options
GSSAPIAuthentication yes
GSSAPICleanupCredentials no

# 変更後
# GSSAPI options
GSSAPIAuthentication no
GSSAPICleanupCredentials no

sshd_config

最後に修正したsshd_configを反映させるためにsshdを再起動します。

$ sudo systemctl reload sshd

SSH接続

これでSSH接続が早くなったはずです。

pocketcode

30代のWEB系企業エンジニアです。毎回同じようなことを検索してしまうので、自分の備忘録的に書いています。サイトのデザインはQiita(https://qiita.com)さんに寄せています。