はじめに
自由にテスト出来るLinuxのサーバーがほしくて、さくらVPSで構築してみました。
順次手順をアップしていく予定です。
前回、CentOS7をインストールしました。
今回はSSHで接続出来る環境を作っていきます。
最初にルートにパスワードで接続し、ユーザ追加・鍵認証・ポート変更等を行います。
目次
- 申し込み
- CentOS7インストール
- SSH接続
- Apache・PHPインストール
- MariaDBインストール
- FTP接続
- sftp接続
- phpMyAdminインストール
- 環境のバックアップ
- Ruby On Railsインストール
- RailsプロジェクトをGitで共同開発
3.SSH接続
Tera Termインストール
接続にはTera Termというソフトを使います。
-
ダウンロード
窓の杜からダウンロードします。
-
インストール
ダウンロードしたファイルteraterm-4.98.exe(H30/04/20現在)を起動
[実行]をクリック
※この後ユーザーアカウント制御ダイアログが表示されたら[はい]を選択[TeraTerm Menu]のチェックを追加して[次へ(N)>]をクリック
以上でTera Termのインストールは完了です。
rootでログインしてみる
-
Tera Termを起動します
-
接続パラメータ入力
-
セキュリティ警告
-
SSH認証
-
接続完了
接続出来ない時は、ホスト・ポート・ユーザ名・パスワード等の設定を確認してください。
あと、サーバーが稼働中かも確認してください。
さくらVPSのサーバー一覧の右端に「停止中」と表示れている場合、起動する必要があります。サーバーを選択し、開いた詳細画面の[起動]をクリックすると起動します。
システムのアップデート
-
システムアップデートをしておきます。
# yum update
-
日本語環境を設定
「localectl」コマンドを使って日本語環境を設定します。
「localectl」は言語と地域の設定の確認と変更を行うコマンドです。
「set-locale」はシステムのローカルを設定するlocalectlのコマンドです。# localectl set-locale LANG=ja_JP.utf8
上記コマンドを実行すると、「/etc/locale.conf」が変更されます。
この変更を反映する為に「source」コマンドを実行します。
「source」コマンドは、ファイルに書かれたコマンドを現在のシェルで実行するコマンドです。# source /etc/locale.conf
「localectl」で設定の確認ができます。
# localectl System Locale: LANG=ja_JP.utf8 VC Keymap: jp106 X11 Layout: jp
英語配列のキーボードを使っている場合は、キーボード配列を変更します。
これも「localctl」コマンドで出来ます。# localectl set-keymap us # localectl System Locale: LANG=ja_JP.utf8 VC Keymap: us X11 Layout: us X11 Model: pc105+inet X11 Options: terminal:ctrl_alt_bksp
作業概要
以下の手順で作業をしていきます
- 作業用一般ユーザの作成
- sudoの設定
- 鍵認証の為の公開鍵と秘密鍵を作成
- 公開鍵を使ったログイン設定
- SSH接続設定とSSH接続ポート番号の変更
- firewalldの設定
- Tera Termで自動ログイン
作業用一般ユーザの作成
例として「sakura」という名称の作業用一般ユーザーを作成します。
先ほど立ち上げたTera Termのrootのコンソールでの作業です。
-
「sakura」ユーザ追加
# useradd sakura
-
パスワード作成
# passwd sakura ユーザ sakura のパスワードを変更。 新しいパスワード: ←ここに入力。表示はされない。 あたらしいパスワードを再入力してください: ←もう一度入力。表示はされない。 passwd: すべての認証トークンが正しく更新できました。
sudoの設定
作業用一般ユーザがスーパーユーザの特権レベルでプログラムを実行できるように、sudoを設定します。
引き続き、先ほど立ち上げたTera Termのrootのコンソールでの作業です。
一般ユーザを「wheel」グループに所属させた後、「wheel」グループが「sudo」を利用できるように設定します。
-
ユーザを「wheel」グループに所属させる
「-G」は補助グループを指定するオプションです。# usermod -G wheel sakura
-
wheelグループに所属するユーザが「sudo」を利用できるように設定
「visudo」はsudoの権限を設定するコマンドです。
実行すると/etc/sudoersファイルを編集するエディタが開きます。# visudo
エディタが起動するので、以下を修正して保存する。
%wheel ALL=(ALL) ALL と書かれた行の先頭に「#」があればはずす。/etc/sudoers.tmp## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALL
-
動作確認
新しくTera Termを開いて、作業用ユーザ「sakura」でログインしてみます。
-
Tera Termを起動し、ユーザを「sakura」にしてコンソールを起動します。
-
sudoの動作確認
コマンドの前に「sudo」を付けて実行します。
メッセージの後、パスワードを聞いてきますので「sakura」のパスワードを入力します。
最後の1行がコマンドの実行結果です。$ sudo id あなたはシステム管理者から通常の講習を受けたはずです。 これは通常、以下の3点に要約されます: #1) 他人のプライバシーを尊重すること。 #2) タイプする前に考えること。 #3) 大いなる力には大いなる責任が伴うこと。 [sudo] sakura のパスワード: uid=0(root) gid=0(root) groups=0(root)
-
-
接続を閉じる
rootでの作業は此処までですので、コンソールを閉じます。
exitコマンドでログアウトしコンソールが閉じます。# exit
鍵認証の為の公開鍵と秘密鍵を作成
ユーザ名とパスワードでの接続が出来ましたので、鍵認証を使った接続の設定をしていきます。
まず、鍵認証に必要な公開鍵と秘密鍵を作成します。
作成にはTera Termを使います。
-
鍵を保存する為のフォルダを作成します。
とりあえずマイドキュメントの下に「公開鍵認証」フォルダを作成しましたが、任意の場所でOKです。 -
Tera Term起動します。
-
「Tera Term:新しい接続」ダイアログの[キャンセル]をクリックし、ダイアログを閉じます。
-
メニューから[設定]-[SSH鍵生成]を選択
-
「TTSSH: 鍵生成」ダイアログで[生成(G)]をクリック
-
鍵のバスフレーズを入力
パスフレーズは任意の文字列です。
接続時に使用します。 -
[公開鍵の保存]をクリックして保存
-
[秘密鍵の保存]をクリックして保存
Tera Termを閉じる
公開鍵を使ったログイン設定
公開鍵をサーバーに転送し、公開鍵認証の設定を行います。
Tera Termで作業用一般ユーザでログインして作業します。
Tera Termを起動し、作業用ユーザー「sakura」でログイン
-
ユーザーのホームディレクトリに移動
$ cd
-
ディレクトリ確認
$pwd /home/sakura
-
公開鍵転送
-
先ほど作成し「My Document\公開鍵認証」フォルダに保存した公開鍵「id_rsa.pub」をTera Termのコンソールにドラッグ&ドロップします。
-
「Tera Term:ドラッグ&ドロップ」ダイアログが開くので、「SCP」欄に「~/」と入力して[SCP]をクリック。
-
確認
公開鍵がルートに転送されたか確認します。id_rsa.pubファイルがあれば成功です。$ ls -l 合計 4 -rw-r--r-- 1 sakura sakura 392 4月 23 14:58 id_rsa.pub
-
公開鍵保存用フォルダを作成し、公開鍵をコピーする。
フォルダ名:.ssh
フォルダのパーミッション:700
ファイル名:.ssh/authorized_keys
ファイルのパーミッション:600$mkdir .ssh $chmod 700 .ssh $cat id_rsa.pub > .ssh/authorized_keys $chmod 600 .ssh/authorized_keys $rm -f id_rsa.pub
-
確認
$ls -la .ssh 合計 4 drwx------ 2 sakura sakura 28 4月 23 15:57 . drwx------ 5 sakura sakura 117 4月 23 15:58 .. -rw------- 1 sakura sakura 392 4月 23 15:57 authorized_keys
-
Tera Termを閉じる
鍵認証を使って接続する為に、一度Tera Termを閉じます。$ exit
-
鍵認証で接続
-
以上で鍵認証を使った接続の設定は完了です。
以降、この接続を使って設定作業を進めていきます。
SSH接続設定とSSH接続ポート番号の変更
作業用一般ユーザの鍵認証を使った接続が出来るようになったので、rootユーザでのログインとパスワードを使った認証は使えないようにします。
作業はTera Termで一般ユーザ「sakura」に鍵認証で接続して行います。
-
SSH接続の設定とポート番号変更
/etc/ssh/sshd_configを編集します。
特権レベル(sudo)で実行します。
変更前にバックアップしておきます。$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org [sudo] sakua のパスワード: ←パスワード入力。表示されない
編集
$ sudo vi /etc/ssh/sshd_config
SSH接続用ポート番号の変更
番号は使用されていないポート(1025~49151)から任意の数値を設定します。
とりあえず2022にしました。# ポート番号を変更 #Port 22 Port 2022
rootユーザでのログインを無効にする
# rootユーザでのログインを無効にする為PrimitRootLoginをnoに変更 #PermitRootLogin yes PermitRootLogin no
パスワード認証を無効にする
# To disable tunneled clear text passwords, change to no here! # パスワード認証を無効にするためPasswordAuthenticationをnoに変更 #PasswordAuthentication yes PasswordAuthentication no
-
SSH接続設定の再読み込み
変更内容を反映させる為に再読み込みします。
$ sudo systemctl restart sshd [sudo] sakua のパスワード: ←パスワード入力。表示されない
-
SSH接続の動作確認
activeという文字があればOKです。$ sudo systemctl status sshd ● sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled) Active: active (running) since 月 2018-04-23 16:54:45 JST; 24s ago Docs: man:sshd(8) man:sshd_config(5) Main PID: 26151 (sshd) CGroup: /system.slice/sshd.service mq26151 /usr/sbin/sshd -D 4月 23 16:54:45 ik1-340-30370.vs.sakura.ne.jp systemd[1]: Starting OpenSSH ... 4月 23 16:54:45 ik1-340-30370.vs.sakura.ne.jp sshd[26151]: Server listening... 4月 23 16:54:45 ik1-340-30370.vs.sakura.ne.jp systemd[1]: Started OpenSSH s... Hint: Some lines were ellipsized, use -l to show in full.
firewalld(ファイアウォール)の設定
SSH接続ポート番号を変更したので、firewalldの設定も変更します。
-
編集
$ sudo vi /usr/lib/firewalld/services/ssh.xml [sudo] sakura のパスワード: ←パスワード入力。表示されない
ポート番号を22から変更したポート番号「2022」に変更します。
<port protocol="tcp" port="2022"/>
-
設定を再読み込みして変更を反映させる
$ sudo firewall-cmd --reload success
-
動作確認
-
一度接続を閉じます
$ exit
-
SSHのポート番号を変更すると、接続できなくなる!!
-
/usr/lib/firewalld/services/ssh.xmlを編集して、設定を再読み込みすると、以下のようになる場合があります。
$ sudo firewall-cmd --reload FirewalID is not running
ファイアウォールが起動していないのですが、これは2019年06月27日にさくらVPSが「パケットフィルタ」の提供を開始したことにより、CentOS7のデフォルト設定からファイアウォール起動が外されたことが原因です。
パケットフィルタは、さくらVPSのコントロールパネルからポートの有効・無効を設定出来る機能で、このパケットフィルタ使用がデフォルトで有効になっているため、ファイアウォールが無効になったようです。
なので、ファイアウォールを使用せずパケットフィルタを使おうと思ったのですが、SSHだとポート22が固定で変更出来ないようです。
ちなみに設定できるポートは以下です。
SSH:22
Web:80/443
FTP:20/21
メール:25/110/143/465/587/993/995
この中で、SSHだけがデフォルトで有効になっています。
このせいで、SSHのポート番号を変更すると、いくらファイアウォールを設定しても繋がらなくなってしまいます。
同様に、Webを有効にしないと、Webサーバー繋がりません。ということで、パケットフィルタは無効にしました。
変更は、さくらVPSのコントロールパネルから行います。 -
firewalld.serviceを起動
$ sudo systemctl start firewalld.service
-
firewalld.serviceの自動起動設定
$sudo systemctl enable firewalld.service
変更したポートで開く
Tera Term:新しい接続にホストを設定して[OK]をクリック
ポート番号:2022 (ポート番号変更時に付けた任意のポート番号)
SSH認証設定
ユーザ名:sakura
パスフレーズ:Tera Termで鍵生成時に入力した「鍵のパスフレーズ」を設定
「RSA/DSA/ECDSA/ED25519鍵を使う」を選択
-
接続
[OK]をクリックすると接続されます
Tera Termで自動ログイン
毎回ユーザ名、パスフレーズを入力と秘密鍵を選択をするのは面倒ですので、自動でログインできるように設定します。
-
「TeraTerm Menu」起動
-
設定
- 登録名:さくらVPS(任意の名称でOK)
-
起動の種類
- 自動ログインにチェック
- ホスト名:153.126.209.124:2022 ←「:」の後にポート番号を記入する。
- ユーザ名:sakura
- パスワード:鍵生成時の「鍵のパスフレーズ」を設定。
- 鍵ファイル:[…]をクリックし、秘密鍵「id_rsa」を選択。
-
起動
次回
SSHの設定が完了しました。
次回は、今回作成した一般作業用のユーザで接続して、ApacheとPHPをインストールします。