このページでは、外部からリモートログインを受け付けるCentOSのSSHサーバ機能を設定する方法を説明します。

SSHサーバ初期状態

CentOSの初期状態では、sshd(SSHサーバデーモン)は自動起動するようになっているため、改めての自動起動設定は不要です。

設定ファイルの編集方法と注意事項

SSHサーバの設定ファイルは、/etc/ssh/sshd_configです。viなどのエディタで編集を行ってください。
なお、同じような名前で/etc/ssh/ssh_configがありますが、こちらはSSHクライアント(リモート接続する側)の設定ですので本ページの内容とは異なる設定ファイルです。

ファイル内では、#が行頭に付けられている箇所がコメント行となります。このコメント行は、初期設定を示しています。
そうでない部分は、<パラメータ名> <値>の形式で設定が記載されています。

SSHサーバの設定ファイルを編集した後は、systemctl reload sshdコマンドでsshdサービスを再起動して設定をリロードしてください。
なお、リモート端末からSSHの設定変更をする際は、現在のSSH接続は設定の正常性が確認できるまで切断しないでください。設定が間違っていた場合は二度とリモートログインできなくなります。現在のSSH接続を繋いだまま、新規にSSHログインを試して接続確認するオペレーションを心がけましょう。

受付ポート

SSH接続を受け付けるポートを指定したい場合は、以下パラメータを設定してください。22番以外のポートに変更する場合は、0~1023はウェルノウンポートとして予約されているので、1024~65535の範囲で指定します。

# 受付TCPポート番号
Port 22

受付IPアドレス

通常は、サーバの持つどのIPアドレスに対してもSSH接続は許可されています。SSH接続を受け付けるIPアドレスを指定したい場合は、以下パラメータを設定してください。

# 使用するIPプロトコル(any / inet / inet6)
AddressFamily any
# 接続を受け付けるIPアドレス。0.0.0.0を指定すると全てのIPアドレスで受け付ける
# IPv6でも受け付けたい場合は、::を値に指定する
ListenAddress 0.0.0.0

ログ出力

ログ出力の設定を変更する場合は、以下のパラメータを設定します。

# Syslogファシリティの指定。
# 選択肢: DAEMON, USER, AUTH, AUTHPRIV, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6,LOCAL7
SyslogFacility AUTHPRIV
# ログレベルの指定。出力情報の粒度を変更できる。
# 選択肢: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG,DEBUG1, DEBUG2 , DEBUG3
LogLevel INFO

認証方式

認証方式について、代表的な設定は以下の通りです。

# rootユーザによる直接ログインの無効化
PermitRootLogin no
# パスワード認証の有効化
PasswordAuthentication yes

その他

その他、設定しておいたほうが良い項目を以下記載します。

# SSH接続元IPの名前解決無効化。DNSで名前解決を行うサーバは、これを指定しないと接続に時間が掛かる
UseDNS no