はじめてのVPS 初期セットアップ② ~SSH鍵認証~

2021/02/08

前回、VPS の OS のアップデートから rootログインの禁止まで行いました。

今回は引き続き VPS の初期セットアップ(鍵認証で SSH 接続)について解説したいと思います。

 

前提知識

今回は以下のLinuxコマンド使用します。

  • ssh-keygenコマンド
  • ssh-copy-idコマンド
  • sshコマンド

コマンドの詳しい解説は以下のページで記載しています。

 

新しいLinuxの教科書

ただ、読むだけではなく実践しながら進める形式になっています。(※コマンド一覧とか早引きの本ではありません)初心者がつまずくであろう箇所は補足説明がしっかり入っています。基本を大事にしている本なので、書いてあることはとてもわかりやすいです。それゆえ、中級者以上の方には物足りないかもしれませんが、初学者にはススメします!

公式サイトで詳細を見る

オススメ

 

手順

クライアントでキーペアを作成

まず、クライアントでキーペア(秘密鍵と公開鍵)を作成します。

鍵の作成は Windows の場合は Git Bash を使って作成します。

【 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  が名前についた方が公開鍵。この公開鍵をリモートサーバーに送って鍵認証します。
.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 を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら

>> Twitter をフォローする

 

-環境構築