はじめに
初めての記事です。
拙い日本語になると思いますが、ご容赦願います。
本記事では、WebARENAのVPSクラウドで起動させたUbuntuサーバーに、新規作成したユーザーでsshログインをするまでにハマったことと、その解決策について書いていきます。
結論
- WebARENA VPSクラウドのUbuntu 18.04インスタンスの初期ユーザー名はubuntu、パスワードはインスタンス名の
i-
以降の文字列。 - sshログイン用の新規ユーザー作成時には、ディレクトリやファイルの所有者に注意
ハマりポイント#1 そもそも初期ユーザーでsshログインができない
WebARENA VPSクラウドのブラウザ管理画面には簡易マニュアルなるものがあります。私は始めてこのサービスを利用するため、このマニュアルに従ってセットアップを行いました。インスタンス生成、キーペア作成、セキュリティグループ作成まで進めていざssh接続をしようとしたところ...Permission denied (Publickey).
root@xxx.xxx.xxx.xxx: Permission denied (publickey).
確かにマニュアルではブラウザ上でキーペアを生成しダウンロードした.pemファイルから認証をする方法が書かれているにも関わらず、私は自前の公開鍵を登録しました。だって公開鍵コピペ用の入力ボックスがあるのだもの。
一応マニュアル通りブラウザ上で生成したペアから認証を試みても...Permission denied
。つまり、公開鍵が自前のものかブラウザから生成したものかはあまり関係ないようです。ログインユーザーもマニュアルに記載してある"root"で間違えないハズです
そこで安直に「webarena ubuntu ssh できない」とggったところ衝撃の事実が。なんとUbuntuインスタンスのログイン用初期ユーザーは"root"ではなく"ubuntu"だそうで。
一応このことは公式サイトにも記載してありました。
しかし一番最初に目につくであろう簡易マニュアルと記載が違うのはまさに罠...。
ちなみにCentOSインスタンスの場合の初期ユーザー名は"centos"。今確認してみたら、マニュアルには一応「CentOS用」と記載してはありました。でも、CentOSインスタンスを作成したとしてもおそらく"root"ではログインできない(未検証です)のだと思うと...。
そしてこれは1番目に載せたサイトに記載してあったことですが、sshログイン自体は公開鍵認証方式でできるもののssh接続先のパスワードとなるとまた話は別のようです。パスワードはWebARENA VPSクラウドのブラウザ管理画面から見れるインスタンス名のうち、i-
以降の文字列になっています。sshでログインできた場合はプロンプト文字列のユーザー名@
以降にあたる文字列がパスワードです。こちらの場合先頭のi-
はもとからありません。
ざっと調べてみてもこの情報が公式で載ってないんですよね...
ハマりポイント#2 新規作成したユーザーのssh認証に失敗
※以下のことはWebARENA VPSクラウド特有のハマりではありません。
最初からあるユーザー"ubuntu"とは別にユーザーを作成し、そのユーザーでsshログインしようとした際に失敗した話です。ここでは新たに作成したユーザーを"caffeine"としています。
ユーザー作成は至って普通です。ユーザー"ubuntu"でログインした状態で作業を行います。
sudo useradd caffeine -m
(-m
オプションによってcaffeineのホームディレクトリを作成しています。)
sudo passwd caffeine
sudo usermod -G sudo caffeine
(caffeineのパスワードを設定し、sudoが使えるようにグループ設定を行います。)
次に、/home/caffeine/.ssh/
下に/home/ubuntu/.ssh/authorized_keys
をコピーします。ブラウザ上から私の環境の公開鍵を登録したので、ユーザー"ubuntu"のauthorized_keysを持ってくればOKです。
ここからがミスポイント。コピペして真似しないで下さい。
まずは.ssh
ディレクトリを作成
sudo mkdir /home/caffeine/.ssh
root権限で行わないとPermission deniedとなるので安直にsudoをつけてしまいました。
そして
sudo cp /home/ubuntu/.ssh/authorized_keys /home/caffeine/.ssh
さて、これでcaffeineのホームディレクトリ以下にssh接続をするための材料が揃いました。
一度ユーザー"ubuntu"としてはログアウトし、クライアント側からユーザー"caffeine"として再度ログイン
ssh caffeine@xxx.xxx.xxx.xxx
caffeine@xxx.xxx.xxx.xxx: Permission denied (publickey).
ぱーみっしょんでぃないど ぱぶりっくきー
。もう何度見たことか。ほんとこいつにはうんざりしますね。
ここからかなり消耗しました。ssh caffeine@xxx.xxx.xxx.xxx -vvv
でデバッグ情報を確認したり、サーバー側で/var/log/auth.log
を確認したり...
定番のパーミッション強度の確認や/home/caffeine/.ssh/authorized_keys
に登録された公開鍵が自前のものと一致することの確認も行いました。それでも直らず...
ただ、原因はほんとにつまらないものです。/home/caffeine
以下への.ssh/
ディレクトリの作成、及びそのディレクトリ以下へのauthorized_keys
のコピーをrootユーザーとして行っていたことで、ディレクトリとファイルが**どちらもroot:root
の所有物になっていました。**したがってPermission deniedが発生していたのです。
解決策は
sudo chown caffeine:caffeine /home/caffeine/.ssh
sudo chown caffeine:caffeine /home/caffeine/.ssh/authorized_key
これで所有者がcaffeineとなり、無事にcaffeineとしてsshログインができました。
めでたしめでたし。