さくらのVPSにインストールしたVyOSのユーザーを鍵認証でログイン

さくらのVPSにVyOSのインストールをした後、SSHでのログインユーザーをデフォルトから変えてみたいと思います。インストールとネットワークの設定、ユーザーの追加や削除は以下の記事を参照してください。

を見てください

デフォルトはパスワード認証

VyOSのデフォルトはパスワード認証となっています。パスワード認証だとクラックされたりするため、デフォルトのパスワードから記号付きのパスワードに変えるなどの対応が必要になります。

最近は鍵認証が主流

最近は公開鍵を使った鍵認証が主流です。一つ鍵を用意しておけば他でも使い回しがき至りするのでよいです。ただし鍵でも注意が必要です。

鍵の種類に注意

公開鍵の種類はいくつかあり、デフォルトだったり多いのはRSA 2048bit形式です。どんなVPSやクラウドサーバー以外にも、githubとかのサービスでも使うことができます。ただ2048bitでが無難で使われていますが、最近はセキュリティーの問題が言われていてECDSA 256bitEd25519なども使われています。

VyOSではRSAしか使えない?

マニュアルを読んだわけではないのでわかりませんが、Ed25519形式やECDSA521の鍵を作成しようとしてもエラーとなります。なので今回はRSA4096形式にします

公開鍵の作成

鍵の作成をします。ここで使うユーザーはデフォルトのvyosとなります。

vyos@vyos:~$ ssh-keygen -t rsa -b 4096  -f server.pem

パスワードを入れる画面がでますが、入れない場合はパスワードなしでログインできます。パスワード入れた場合は鍵認証でログインする時に毎回パスワードを聞いてきます。作成できたか確認をします

vyos@vyos:~$ ls -all
drwxr-x--- 2 vyos users 4096 Sep 22 06:36 .ssh
-rw------- 1 vyos users 3247 Sep 22 07:07 server.pem
-rw-r--r-- 1 vyos users  735 Sep 22 07:07 server.pem.pub
  • server.pem:秘密鍵
  • server.pem.pub:公開鍵

となります。

公開鍵の確認

公開鍵の確認をします

vyos@vyos:~$ cat server.pem.pub
ssh-rsa AAAAB・・・(中略)4r79wdpFlVw== vyos@vyos
vyos@vyos:~$

公開鍵の中身を確認したら、次に秘密鍵の中身を確認します

秘密鍵の確認

今度は秘密鍵を確認します。

vyos@vyos:~$ cat server.pem
-----BEGIN RSA PRIVATE KEY-----
MIIJKg・・・(中略)
F0tv6wxptC1J/CMfpWfAblyPsEcCA6lFWN8vUHTPJkMfNZHXxayhbawbsNpVRQ==
-----END RSA PRIVATE KEY-----
vyos@vyos:~$

秘密鍵は、パスワード認証の状態で一度vyosにアクセスをして秘密鍵をダウンロードしておきます。

鍵の登録(取り込み)

作成した鍵を取り込みをします。鍵の取り込みをする前に、VyOSではホスト名を設定しないといけないみたいなので先にその設定をします

ホスト名の設定

デフォルトのインストールした状態では、ホスト名の設定はされていないので確認します。

vyos@vyos# show system host-name
[edit]
vyos@vyos#

なにも設定されておりません。ここではvyosというホスト名を設定してみます

vyos@vyos# set system host-name vyos
commit
save

設定をしたら再度確認してみます

vyos@vyos# show system host-name
 host-name vyos
[edit]
vyos@vyos#

設定できました。

というわけで先ほど作ったキーファイルを読み込みします

キーファイルを読み込み

vyos@vyos# loadkey vyos server.pem.pub

読み込みに成功したか確認します

vyos@vyos# show system login user
 user vyos {
     authentication {
         encrypted-password $1$cUxwxUqg$fmOXW6pZeN2Z8W4NmcVJ91
         plaintext-password ""
         public-keys vyos@vyos {
             key AAAAB・・・(中略)4r79wdpFlVw==
             type ssh-rsa
         }
     }
     level admin
 }
[edit]
vyos@vyos#

これで鍵の登録が終わりました

接続できるか確認

WindowsならPuTTYを使ってログインできるか確認してみます。server.pemの状態では使えないので、ppk形式に変換します。変換の仕方は割愛します。

PuTTYgenを使って公開鍵と秘密鍵を作成するをみて変換してください。秘密鍵を作成の箇所から下の作業をそのままします。今回はppkの形式だけ作ればOKです。Loadを押してファイルを読み込むなどの作業は不要です。


ホスト名にIPアドレスをいれます。(今回はさくらのVPSのIPアドレスになります)


接続 > SSH > 認証を選択し、参照からプライベートキーを選択します。今回はserver.ppkとなります。


実際に参照してプライベートキーを選択した状態です。
ここまでやったら後は接続をしてください

接続成功すれば鍵認証の設定が完了です

注意点

PuTTYはデフォルトでEUC-JPの言語となっています。VyOSはUTF-8なので文字化けが起きるので事前にUTF-8にすることをお勧めします

鍵ファイルのダウンロード方法

WinSCPで鍵をダウンロードする方法を載せておきます。


通常のSFTPでログインします。

  • ユーザー名:vyos
  • パスワード:設定したパスワード(デフォルトはvyos)

でログインできます


ログインをしたら、後はserver.pemを落とせばOKです。公開鍵もダウンロードする場合はserver.pem.pubのファイルを落とせばOKです