CentOS 7 Serverを用意しよう!その4<SSH導入編>

CentOS 7 Serverを用意しよう!その4<SSH導入編>

今回は、SSHの導入と鍵認証の設定を紹介します。
サーバー機に直接操作してもいいのですが、切り替えるのが手間だと思いますのでSSHの導入を紹介します。

内容は初心者向けにまとめています。

また、VPSを使っている場合はこのページをスキップしてください。プロバイダーにより既に設定してあるはずです。

SSHと鍵認証って?

SSHと鍵認証について紹介します。

上から順番に見て実行してください。飛ばさないように注意してください!

SSHとは

SSHとはSecure Shellの略。
暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコル。
パスワードなどの認証部分を含むすべてのネットワーク上の通信が暗号化される。

Wikipediaから引用

鍵認証とは

家の鍵のようなもので、アクセスするには鍵が必要になります。
コンピューターでの鍵は文字列になっていて、お互いの文字列が一致することで承認されます。

パスワードだけではセキュリティレベルが低いので、これを使用して強化します。

鍵はファイルで出力されます。そのファイルを損失したり、すぐに盗まれるような保存の仕方をしては意味がありません。
鍵は十分に配慮して保存する必要があります。

SSH導入

SSHインストール

yum list installed | grep ssh
CentOS 7 にはSSHが既に導入されています。
年のためこのコマンドを使用して、有無を確認します。
openssh-server から始まる名前のものがあればOKです。

openssh-serverがなかった場合
openssh-server がなかった場合は、yum -y install openssh-server を実行してインストールします。

SSH設定 その1

設定前のファイルのコピー

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
次は、設定ファイルのコピーを作っておきます。滅茶苦茶になったときはコピーしたファイルを使用してください。

cp [対象ファイルパス] [保存先] でファイルをコピーすることができます。

設定の変更

次は、SSHの設定を変更します。

vimでssh設定ファイルを開く

vim /etc/ssh/sshd_config
このコマンドを実行するとファイルの編集に入ります。
前ページで説明したとおり、コマンド実行直後はコマンドモードなので編集モードに入らないと編集できません。
でもその前にあるコマンドを実行します。

:set number
これを実行することで左側に行番号が表示されます。これはviでも使うことができます

行番号も表示されて見やすくなりました!それでも編集してみましょう!

値の変更

「iキー」を押すだけで編集モードに入ります。
編集モードに入ったら左下に – INSERT – と表示されたと思います。以下の通りに従ってください。

行数は異なる場合があります。目安として見てください。

① 17行目の #Port 22 の#を削除します。
② 38行目の #PermitRootLogin yes の #を削除します。
③ 65行目の PasswordAuthentication yes に#がないことを確認します。

これらを変更したら「Escキー」を押します。
Escキーを押すことで編集モードからコマンドモードに入ります。
:wq を実行してください。これは上書き保存を意味します。

vimの場合、:wq上書き保存:q!保存せずに終了することができます。

設定の適用

systemctl restart sshd
設定を変更したのでこのコマンドを実行してSSHを起動または再起動し、設定した内容を読み込ませます。

ファイアウォール設定

外部からサーバーにアクセスするには、ファイアウォールの許可設定をする必要があります。
次は、外部からアクセスするようにします。

iptables の停止

まずは、iptables と共存ができないためiptablesの停止とスタートアップの停止を行います。
systemctl stop iptables → iptablesの停止
systemctl disable iptables → iptablesのスタートアップの停止
systemctl is-enabled iptables → スタートアップ停止の確認

firewalldのインストール

CentOS 7 にはfirewalldがインストールされていますが、確認をしておきます。

yum list installed | grep firewalld
このコマンドでfirewalldの有無を確認します。

firewalldがインストールされてなかった場合
yum install firewalld
インストールされていないのであれば、このコマンドを実行します。

firewalld の準備ができたらSSHポートの確認をします。

firewall-cmd --list-all
このコマンドを実行します。
services のところに SSH が表示されていたらそのままSSH接続の確認へ進んでください。

services にSSHがなかった場合

firewall-cmd --permanent --zone=public --add-service=ssh
このコマンドでSSHポートを追加します。

firewall-cmd --reload
再読み込みコマンドを実行しないと反映されないため、このコマンドを実行します。

これでもう一度firewall-cmd --list-allを実行してみましょう。servicesのところにSSHが追加されていると思います。
追加できたら下に進みましょう。

接続の確認

SSH接続ができるか確認してみましょう。
Windowsから接続する場合、使用するソフトウェアはWinSCPPuTTY がおすすめです。
WinSCPはエクスプローラー感覚でファイルを編集したり操作することができます。PuTTYはSSHクライアントソフトです。

サーバーのIPアドレスの確認

まずは、サーバーのIPアドレスを調べてみます。

ip address でIPアドレスを調べることができます。(Virtual Machine以外)
以下の画像で言うと、オレンジ線の部分がこのサーバーのIPアドレスです。

Virtual MachineでCentOSを立てた場合
nmcli device show | grep IP4.GATEWAY ※ 大文字に注意
Virtual Machineの場合、このコマンドで自分のIPアドレスを調べることができます。
自分の場合はこのように出力されました。

上の画像のオレンジ線で示しているところがIPv4アドレスです。

WinSCPを使用して接続

WinSCPの場合は、このように入力します。パスワードはCentOSインストール時に設定したパスワードです。

ホスト名 → IPアドレス
ポート番号 → 22(SSHの設定で弄ってなければ)
ユーザー名 → root
パスワード → セットアップに入力したパスワード

これらを確認してログインします。


ログインに成功すればこのような画面に移ります。
このような画面になったら矢印先にあるアイコンをクリックしてPuTTYを起動します。(PuTTYをインストールしておかないと起動できません。)

クリックしてパスワードを求められたら、CentOSセットアップ時に設定したパスワードを入力します。

今までCUIに打っていたコマンドは次からSSHで実行することができます。


これでSSHの導入は以上です。
お疲れ様でした。次はSSH認証鍵の設定を紹介します。
>> CentOS 7 Serverを用意しよう!その5<SSH認証鍵編>

CentOSカテゴリの最新記事