さくらのVPS(1G)を契約し公開鍵認証を設定した

さくらのVPS(1G)を契約しました。
これから活用していければいいなと思います。
このエントリは、契約後にした公開鍵認証の作業ログです。
もうかなり忘れている…
これだけ見ると分からないと思うので、参考リンクも同時に目を通してください。

目次

  • 参考にしたページ
  • ローカルとサーバーの環境
  • サーバーの起動
  • rootパスワードの変更
  • 作業用ユーザーの作成
  • 公開鍵認証の設定
  • SSHログイン設定で公開鍵認証以外禁止

ローカルとサーバーの環境

サーバーの起動

コントロールパネルから、サーバーを起動させます。
さくらインターネットVPSコントロールパネル
『仮想サーバ操作』という欄の右にある、起動ボタンを押します。
一つ上の『ステータス』の更新ボタンを押し、右に『稼働中』と表示されればOKです。

rootパスワードの変更や作業用ユーザーの作成

サーバーにログインします。
以下のような形でさくらから送られたメールに情報が乗っています。
そこに記載されているIPアドレスを利用します。
ターミナルを立ち上げ、『ssh root@(IPアドレス)』と入力します。

《VPSコントロールパネル ログイン情報》

  VPSコントロールパネルでは、仮想サーバのリセットやリモート
  コンソールでの接続、OSの再インストールなどを行うことができます。

     URL       : https://secure.sakura.ad.jp/vpscontrol/
     IPアドレス: *********
     パスワード: **********

入力後にパスワードを求められます。
これでログインできるはずです。

rootパスワードの変更

rootのパスワードはメールに記載された初期のものですが、これを変更します。
『passwd』コマンドを使います。

# passwd
Changing password for user root.
New UNIX password:
Retype new UNIX password:
(ここで辞書的な単語を入力すると『Bad Password〜』と出ることがありますが、進めることはできます)
passwd: all authentication tokens updated successfully.

これでrootのパスワードが変わりました。
次に、新しく作業用ユーザーを作成します。
これから、通常は作業用ユーザーを使うことになります。
rootユーザーは権限が強すぎるので、深刻な作業ミスが起きるのを防ぐためです。
では『adduser』コマンドを使います。

# useradd testuser
# passwd testuser
Changing password for user testuser.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

これで新ユーザーの作成と、パスワードの設定ができます。
この段階で、ターミナルから『ssh testuser@ip (-p 22)』というログインができるようになるかと思います。
『-p 22』はポート番号の指定です。
今回は前回同様、指定しなくてもログインできます。
しかしこのデフォルトのポート番号は今後変更するため、ポート指定のログイン方法を知っておきます。

公開鍵認証の設定

これまでのログイン方法(パスワード認証)だとセキュリティが弱いため、新しい認証方式を設定します。
ここなんですが、今回は以前作成した鍵を利用したので、鍵の作成自体は飛ばします。
よって、既に以下の二つがあることにします。
 公開鍵 … id_rsa.pub
 秘密鍵 … id_rsa

このうち、公開鍵をサーバーの作業用ユーザーの/.ssh/に置きます。
ディレクトリは無いと思うので作成し、ファイル名は『authorized_keys』として置きます。
その後、.sshディレクトリのパーミッションを『chmod 700』に、authorized_keysファイルは、『chmod 600』に変更します。
もう一つの秘密鍵は、ローカル端末の/.ssh/の中に置きます。

今回、この公開鍵を移してパーミッションを変更する作業を、作業ユーザーではなくrootでやってしまった可能性があります…
しかも、『rootで作業ユーザーのディレクトリに移した』というちょっと面倒くさい感じの…
ですが、その辺りでやっと、rootと他のユーザーの関係、ディレクトリの関係が分かってきました。
気をつけます。

次に、ローカルの/.ssh/に新規ファイルでconfigを用意します。

Host sakuranewuser(sshを入力する時に使う名前)
	HostName ***.***.***.***(サーバーのIPアドレス)
	User newuser(サーバーの作業ユーザー名)
	Port *****(デフォルトなら22。しかし変更が望ましい)
	IdentityFile ********(秘密鍵のパス)

こう入力し保存します。
すると、『ssh sakuranewuser』と入力するだけで、サーバーにログインできます。
これが公開鍵認証です。
この確認をしないまま下の作業をすると、サーバーに入れなくなる可能性があります。

SSHログイン設定で公開鍵認証以外禁止

『rootでのログイン』や、他のユーザーでのパスワード認証を禁止します。
SSHの設定変更には、管理者権限が必要です。
公開鍵認証すると、作業ユーザーになっているはずです。
『su』コマンドでrootになり、sshd_configファイルを編集します。
(『exit』で作業ユーザーに戻れます)
vim /etc/ssh/sshd_config』

  • PermitRootLogin ( root のログイン ) をnoにします。
  • PasswordAuthentication ( パスワード認証 ) を no にします。

編集し保存をしたら、SSHデーモンを再起動します。
『service sshd restart』

この段階で、rootでのログインや、他のユーザーでもパスワード認証などができなくなります。
ssh root@ip』や『ssh 作業ユーザー@ip』などの、これまでのパスワード認証ですね。
公開鍵認証を確認していないと、サーバーにログインできなくなる可能性があります。

  • 公開鍵認証可能を事前に確認しておく
  • サーバーにログインしているターミナルは残したまま、別のターミナルで公開鍵認証を試してみる
  • 上に失敗したら、ログインしているターミナルで、一度パスワード認証を可能に戻し、公開鍵認証をやり直す

などいずれかの注意が必要です。
ここは特に問題なくできました。
「ここで失敗するとログインできなくなるな」というのは直感できました。

以上です。お疲れ様でした。

次回以降は、sudoの設定や、apacheのインストールとhtml表示、basic認証などの作業ログを書くつもりです。