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

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

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

 

前提知識

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

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

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

 

手順

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

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

鍵の作成は 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 をフォローする

 

-環境構築