こちらの記事の続きです。
はじめに
CentOSのインストール直後はSSH接続できず、ホストOSから操作できないため、SSH接続できるように設定します。
実務でもサーバーが遠隔にあることがほとんどであり、SSH接続でリモート操作することがよくあります。
環境
- VirtualBox:5.0.32 r112930
- ホストOS:macOS Sierra 10.12
- ゲストOS:CentOS 7.3-1611 64bit Minimal
セットアップ(サーバー)
rootユーザーのログイン
まず、rootユーザーでログインします。
[localhost login]に「root」、[Password]に設定したパスワードを入力してください。完了はEnterキーです。
注意点として、パスワードの入力は何も表示されませんが、問題なく入力されています。
最終ログイン日時と [root@localhost ~]# _
が表示されたらログイン成功です。
デフォルトでプロンプトは [{ユーザー名}@{ホスト名} {カレントディレクトリパス}]
となっています。そのあとの #
はrootユーザーという意味であり、一般ユーザーでログインすると $
となります。
SSHサーバーのインストール
openssh-server
はMinimal ISOでもプリインストールされているため、インストール作業は不要です。
SSHの設定
SSHの設定ファイルを修正します。
※viの使い方は割愛します。
# vi /etc/ssh/sshd_config
#PermitRootLogin yes
を PermitRootLogin no
、 #PasswordAuthentication yes
を PasswordAuthentication yes
、 #PermitEmptyPasswords no
を PermitEmptyPasswords no
に書き換え、 :wq
で保存して終了します。
PermitRootLogin
を no
にすると、rootユーザーによるログインを許可しません。
rootユーザーでログインできるとクラックされやすい、また、rootユーザーで操作を誤ると取り返しのつかないことになることもあるため、一般ユーザーでしかリモートログインできないようにするのが一般的です。
PasswordAuthentication
を yes
にすると、パスワード認証を許可します。
パスワード認証より公開鍵認証の方がセキュリティの観点から望ましいですが、ここではパスワード認証とします。
PermitEmptyPasswords
を no
にすると、パスワードなしを許可しません。
サービスの起動
SSHのサービスを起動します。
# systemctl start sshd.service
サービスが起動したか確認します。
# systemctl status sshd.service
緑の字で active (running)
と表示されたらSSHのサービスが起動しています。
ファイアウォールの設定
SSH用のポートはMinimal ISOでも元から開放されているため、設定は不要です。
一般ユーザーの作成
SSH接続する一般ユーザーを追加します。
# useradd {ユーザー名}
追加した一般ユーザーにパスワードを設定します。
# passwd {ユーザー名}
New password:
Retype new password:
でパスワードを2回入力したら、パスワードの設定は完了です。
先ほどrootユーザーによるリモートログインを禁止したため、rootユーザー向けのコマンドを実行できないですが、 sudo
というコマンドを使用すれば一般ユーザーでもrootユーザー向けのコマンドを実行できるようになります。
CentOSではデフォルトで sudo
できるグループが wheel
グループのみに制限されているため、追加した一般ユーザーを wheel
グループに追加し、 sudo
できるようにします。
# usermod -G wheel {ユーザー名}
ネットワークの設定
OSの起動時に自動でネットワークに接続するようにします。
# nmcli c mod enp0s3 connection.autoconnect yes
c
は connection
の略です。
IPアドレスの確認
# ip a show enp0s3
inet
から始まる箇所がサーバーのIPアドレス(IPv4)です。
操作方法(クライアント)
macOSにはデフォルトでSSHクライアントがインストールされているため、ターミナルからSSH接続できます。
WindowsでもGit bashにはデフォルトでインストールされていますが、Tera Term(テラターム)やPuTTY(パティ)などのSSHクライアントを使用するのがいいと思います。
SSH接続の開始
$ ssh {ユーザー名}@{サーバーのIPアドレス}
The authenticity of host '{IPアドレス} ({IPアドレス})' can't be established. ECDSA key fingerprint is SHA256:{英語の文字列}. Are you sure you want to continue connecting (yes/no)?
のようなメッセージが表示されますが、こちらはそのサーバーに初めて接続する場合に表示されるメッセージであり、ここでは気にせず yes
と入力します。
[test@localhost ~]$
と表示されたら、SSH接続に成功しています。ここからの入力は全て指定したIPアドレスのサーバーに反映されます。
SSH接続の終了
$ exit
おわりに
IPアドレスはデフォルトで固定でなくDHCP(ipv4.method: auto)となっています。
通常、サーバーは固定のIPを使用しますが、ここではDHCPのままとしています。