2021/02/08
前回、VPS の OS のアップデートから rootログインの禁止まで行いました。
はじめてのVPS 初期セットアップ① ~OSアップデートからrootログインの禁止まで~
今回は引き続き VPS の初期セットアップ(鍵認証で SSH 接続)について解説したいと思います。
前提知識
今回は以下のLinuxコマンド使用します。
- ssh-keygenコマンド
- ssh-copy-idコマンド
- sshコマンド
コマンドの詳しい解説は以下のページで記載しています。
新しいLinuxの教科書
ただ、読むだけではなく実践しながら進める形式になっています。(※コマンド一覧とか早引きの本ではありません)初心者がつまずくであろう箇所は補足説明がしっかり入っています。基本を大事にしている本なので、書いてあることはとてもわかりやすいです。それゆえ、中級者以上の方には物足りないかもしれませんが、初学者にはススメします!
手順
クライアントでキーペアを作成
まず、クライアントでキーペア(秘密鍵と公開鍵)を作成します。
鍵の作成は Windows の場合は Git Bash を使って作成します。
Windows で Git を使う場合は "Git for Windows" というアプリが必要になります。
Git for Windows には Git Bash というプログラムが含まれています。Git Bash 上では Cygwin(シグウィン)のようにシェル環境と色々なUnixコマンドを利用できるようになります。
# ユーザーフォルダ配下にある.sshディレクトリに移動
$ cd ~/.ssh
# .sshディレクトリが無い場合
$ cd ~
$ mkdir .ssh
#-----------------------
# 鍵の作成
#-----------------------
# -f は鍵の名前を指定
# -t は鍵の種類を指定(rsa、dsa、ecdsa、ed25519)
# -b は鍵の暗号化強度
$ ssh-keygen -f client_rsa -t rsa -b 2048
# パスワードを設定する場合は入力してEnter
# 不要ならそのまま何も入力せずEnter
Enter passphrase:
# もう一度同じように入力
Enter some passphrase again:
実例
上記のコマンドを打つと .sshディレクトリ に以下のような鍵が作成されます。
.pub が名前についていない方が秘密鍵です。秘密鍵はクライアント側に保存。
鍵をサーバーに登録
SSHによる鍵認証を行うためにはローカルで公開鍵を生成し、それを リモートサーバーにSCPコマンドで送って .ssh/authorized_keys
に追記する必要があります。
SELinux
が有効だと上手くいきません。ちなみに、CentOS7 はデフォルトで SELinux が有効になっています。
ただ、もっと簡単なコマンドが用意されていて ssh-copy-id
というコマンドを使うと、簡単に公開鍵をリモートサーバーにコピーすることができます。
# scp-copy-idコマンドでリモートサーバーに鍵を登録
#-iオプションで任意の公開鍵を指定する
$ ssh-copy-id -i ~/.ssh/client_rsa.pub admin@192.168.1.100
実例
SSH設定ファイルの編集・反映
リモートからのアクセスを公開鍵認証のみに設定します。
SSHコマンドでログインし、SSH設定ファイル(sshd_config)をvimで編集します。
# SSHコマンドでサーバーにログイン
$ ssh admin@192.168.1.100
#SSH設定ファイル(sshd_config)を編集
$ vim /etc/ssh/sshd_config
sshd_configファイルは以下のように3点を編集します。
:
PasswordAuthentication no
:
ChallengeResponseAuthentication no
:
UsePAM yes
実演
編集をしたらsshdを再起動します。
#CentOS6はserviceコマンドで再起動
#CentOS7はsystemctlコマンドで再起動
$ systemctl restart sshd.service
動作確認
ログアウトしてログインをしてみます。
#ログアウト
$ exit
#ログイン
$ ssh -i ~/.ssh/client_rsa admin@192.168.1.100
実演
「シェルアシスト」がある Poderosa(SSHクライアントソフト)を使ってログインしたい場合
「認証方式」 に 「秘密鍵を使用」にチェックして秘密鍵を選択します。
そのあと、「パスフレーズの入力」画面が表示されるので、鍵を作成するときに設定したパスワードを入力します。
以下のような画面になればOKです。
以上です。
さくらのVPS
Linuxの知識がある方や初心者の枠から脱した人は「VPS」をおススメします!もし、あなたがデザイナーで静的ページのサイトしか作らないのであれば「レンタルサーバー」でOKです。ただ、Webプログラマーとして仕事をするのであればroot権限のあるVPSサーバーを最低1台、自分専用(学習用)を持っておいたほうがいいでしょう。
Laravelプログラマーの初心者が選ぶ学習用サーバーとは?
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。