SSHによるサーバー管理
初期設定
第三者による攻撃や不正アクセスを防止するため、初期状態ではsshdのアクセス制限が設定されています。設定を行うまではすべてのアクセス元からのアクセスが禁止された状態になっています。お客様接続元IPアドレスからの接続許可の設定を行います。
※CentOS8 以降、Rocky Linux8.4 以降、AlmaLinux9.3 以降、Ubuntu20.04 以降ついてはアクセス制限がされておりませんですので、本項はスキップし、アクセス制限から設定を実施してください。
コントロールパネルにログインして、「サーバー」メニューから「コンソール」「開く」を選択してください。

コントロールパネルに接続している接続元のIPアドレス(お客さまの端末をサーバー側から見た時のグローバルIPアドレス)を /etc/hosts.allow ファイルに登録すると、そのIPアドレスからSSHでアクセスすることが可能になります。
(例)SSHのアクセス制限に、IPアドレス203.0.113.5を登録する場合
[root@localhost ~]# vi /etc/hosts.allow sshd: 203.0.113.5
アクセス制限
初期設定ではrootで直接ログインすることが可能になっています。セキュリティ対策のために、rootで直接ログインを禁止する設定を実施いただくことをお勧めいたします。
[ 管理者アカウントでの直接ログインを禁止する設定 ]
SSHにrootアカウントで直接ログインすることを禁止する設定を行います。
※事前にユーザーアカウントを作成していない場合、SSH接続ができなくなりますのでご注意ください。
ユーザーアカウントの設定方法は[ユーザーアカウントの管理]をご参照ください。
CentOS6、CentOS7の場合
- rootアカウントでログインします。
- /etc/ssh/sshd_config ファイルを編集します。
[root@localhost ~]# vi /etc/ssh/sshd_config
- 「#PermitRootLogin yes」と書いてある行がありますので、この行の行頭にある「#」を削除し「yes」を「no」に書き換えてください。
PermitRootLogin no (←行頭にある # を削除)
書き換えが終了したらファイルを保存してテキストエディタを終了してください。 - 以下のコマンドを実行し、設定した内容を有効にしてください。
CentOS6の場合
[root@localhost ~]# service sshd reload
CentOS7の場合[root@localhost ~]# systemctl reload sshd.service
CentOS8、Rocky Linux8.4の場合
- rootアカウントでログインします。
- /etc/ssh/sshd_config ファイルを編集します。
[root@localhost ~]# vi /etc/ssh/sshd_config
「PermitRootLogin yes」と書いてある行がありますので、「yes」を「no」に書き換えてください。PermitRootLogin yes (←に記載されている「yes」を「no」と変更してください)
書き換えが終了したらファイルを保存してテキストエディタを終了してください。 -
以下のコマンドを実行し、設定した内容を有効にしてください。
[root@localhost ~]# systemctl reload sshd.service
Rocky Linux9.0 / AlmaLinux9.3の場合
- rootアカウントでログインします。
- /etc/ssh/sshd_config ファイルを編集します。
[root@localhost ~]# vi /etc/ssh/sshd_config
次のとおり行を更新してください。
#PermitRootLogin prohibit-password
↓
PermitRootLogin no書き換えが終了したらファイルを保存してテキストエディタを終了してください。
-
以下のコマンドを実行し、設定した内容を有効にしてください。
[root@localhost ~]# systemctl reload sshd.service
Ubuntu20.04 / Ubuntu22.04 / Ubuntu24.04の場合
-
- rootアカウントでログインします。
- /etc/ssh/sshd_config ファイルを編集します。
[root@localhost ~]# vi /etc/ssh/sshd_config
次のとおり行を更新してください。#PermitRootLogin prohibit-password
書き換えが終了したらファイルを保存してテキストエディタを終了してください。
↓
PermitRootLogin no - 以下のコマンドを実行し、設定した内容を有効にしてください。
[root@localhost ~]# systemctl reload ssh.service
[ アクセス元を制限する設定 ]
初期状態でアクセス元を制限する設定が行われています。任意のアクセス元からのSSH接続を許可する場合はアクセス元の追加登録を行ってください。
※CentOS8 以降、Rocky Linux8.4 以降、Almalinux9.3 以降、Ubuntu20.04 以降についてはアクセス制限が設定されておりませんので、本項はスキップしてください。
- rootアカウントでログインします。
- /etc/hosts.allow ファイルを編集します。
[root@localhost ~]# vi /etc/hosts.allow
「#」で始まる行はコメントになっていますので、それ以外の行(通常はコメント行より下の行に記述します)に 「sshd : (アクセス元のIPアドレスまたはドメイン名)」という形式でアクセスを許可するアクセス元を記述します。 許可するアクセス元はお客さまがご利用になるネットワーク環境に応じて設定してください。
ここでは例として、以下のような条件を設定することにします。
- IPアドレス203.0.113.5のホストからのアクセスを許可する。
- 192.0.2.で始まるIPアドレスのホストからのアクセスを許可する。
- example.arena.ne.jp というドメイン名のホストからのアクセスを許可する。
- nttpc.co.jp で終わるドメイン名のホストからのアクセスを許可する。
この場合の hosts.allow ファイルの設定は以下のように記述します。
sshd : (初期設定時のIPアドレス) # # hosts.allow This file describes the names of the hosts which are # allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. # sshd : 203.0.113.5 sshd : 192.0.2. sshd : example.arena.ne.jp sshd : .nttpc.co.jp
書き換えが終了したらファイルを保存してテキストエディタを終了してください。
ユーザーアカウントの管理
初期状態ではユーザーアカウントはありません。アカウントを追加する場合は rootで仮想専用サーバーにログインして以下のコマンドを実行してください。
# useradd ユーザー名
たとえば、「nttpc」というユーザーアカウントを作成したい場合は以下のコマンドを入力します。
[root@localhost ~]# useradd nttpc
ユーザー追加後、パスワードも設定してください。パスワードが設定されていないユーザーはログインすることが出来ません。 パスワードの設定は以下のコマンドで行うことが出来ます。
# passwd ユーザー名
たとえば、「nttpc」というユーザーアカウントのパスワードを設定する場合は以下のコマンドを入力します。 コマンドを入力すると設定するパスワードを入力するプロンプトが表示されますので、 設定したいパスワードを入力してEnterを押す操作を2回繰り返してください。
[root@localhost ~]# passwd nttpc Changing password for user nttpc. New UNIX password:(設定するパスワードを入力) Retype new UNIX password:(同じパスワードをもう一度入力) passwd: all authentication tokens updated successfully.
作成したユーザーアカウントを削除する場合は以下のコマンドを入力します。
# userdel ユーザー名
たとえば、「nttpc」というユーザーアカウントを削除する場合は以下のコマンドを入力します。
[root@localhost ~]# userdel nttpc
パスワードの変更
ログインしているユーザーアカウントのパスワードを変更する場合は以下のコマンドを入力してください。
[root@localhost ~]# passwd
コマンドを入力すると設定するパスワードを入力するプロンプトが表示されますので、 設定したいパスワードを入力してEnterを押す操作を2回繰り返してください。
root権限を使用している場合は以下のコマンドでユーザーアカウントのパスワードを強制的に変更することが出来ます。
# passwd ユーザー名
たとえば、「nttpc」というユーザーアカウントのパスワードを変更したい場合は以下のコマンドを入力します。
[root@localhost ~]# passwd nttpc
自動起動の設定
sshdを起動するとSSHで接続できるようになりますが、そのままの状態ではOSを再起動するたびに手動でsshdを起動しなければなりません。
OSの再起動と同時にsshdを自動起動させたい場合は、SSHでサーバーにログインし、root権限で以下のコマンドを実行してください。
※CentOS8 以降、Rocky Linux8.4 以降、Ubuntu20.04 以降については自動設定がされておりますので、本項はスキップしてください。
CentOS6の場合
[root@localhost ~]# chkconfig sshd on
設定の確認は以下のコマンドを実行します。
[root@localhost ~]# chkconfig --list
CentOS7の場合
[root@localhost ~]# systemctl enable sshd.service
設定の確認は以下のコマンドを実行します。
[root@localhost ~]# systemctl status sshd.service sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled) Active: active (running) since Mon 2015-06-08 11:57:36 JST; 1min 8s ago Main PID: 3125 (sshd) CGroup: /system.slice/sshd.service └─3125 /usr/sbin/sshd -D Jun 08 11:57:36 localhost.localdomain systemd[1]: Started OpenSSH server daemon.