さくらの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』などの、これまでのパスワード認証ですね。
公開鍵認証を確認していないと、サーバーにログインできなくなる可能性があります。
- 公開鍵認証可能を事前に確認しておく
- サーバーにログインしているターミナルは残したまま、別のターミナルで公開鍵認証を試してみる
- 上に失敗したら、ログインしているターミナルで、一度パスワード認証を可能に戻し、公開鍵認証をやり直す
などいずれかの注意が必要です。
ここは特に問題なくできました。
「ここで失敗するとログインできなくなるな」というのは直感できました。
以上です。お疲れ様でした。