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接続が早くなったはずです。
30代のWEB系企業エンジニアです。毎回同じようなことを検索してしまうので、自分の備忘録的に書いています。サイトのデザインはQiita(https://qiita.com)さんに寄せています。