やっと解決したので、備忘録としてメモ。
失敗の原因=コンソールでコピペができない仕様
サーバーに公式で用意されているUbuntu 20.04 LTSをインストールしました。
その後、さくらVPSのコントロールパネルから、VNCコンソール画面を開き、SSH接続のための設定作業をやっていました。
ローカルPCで作成した公開鍵の文字列を、サーバー側のファイルに貼り付けて保存したかったのですが、VNCコンソールにペーストの機能がなくて、貼り付けられませんでした。
キーボード操作によるコピー・ペーストは利用できません。
昔のバージョンのコンソール画面には、コピーペーストボタンが付いていたのですが、なくなったようです。
最初からSSHの公開鍵を仕込む方法が用意されていた
コントロールパネルでOSをインストールするとき、「サーバーへのSSHキー登録」という項目があって、これを「登録する」を選びます。
その下にはる「SSHキー」という欄に、予めSSHの公開鍵の文字列を貼り付けておけばOKでした。
最初は無視していたけど、SSHの設定で苦労してから、この項目がある意味が分かりました。
は~、時間を無駄にしたけど、解決するときはアッサリ解決しますね。…トホホ
SSH公開鍵の確認
OSのインストール完了後、VPSのコントロールパネルから、VNCコンソール画面を起動します。
ユーザーのホームディレクトリーに「.ssh」というディレクトリーができています。
この中にある「authorized_keys」というファイルをviで開いて、中身を確認してみると、先ほど「サーバーへのSSHキー登録」のSSHキー欄に貼りつけた文字列と同じになっていることが確認できました。
一度分かってしまえば何でもない仕組みだけど、知らないとドツボにはまる仕組みだと思いました。
手動で回避する方法
これを手動で回避するには、SSH接続の設定を2段階でやらないといけませんね。
面倒くさいので検証しませんが、多分以下のような手順が必要になると思います。
- 最初は、パスワードでSSH接続できる設定にしておく。
- パスワードでSSH接続して、公開鍵のファイルをサーバーにアップロードする。
- コントロールパネルのVNCコンソール画面で、パスワードでのSSH接続を禁止にする。
- 公開鍵を使ったSSH接続の設定に変更する。
パスワードによるSSH接続は、セキュリティーが甘いので、最初だけしか使いません。
SSH用の公開鍵ファイルをアップロードするためだけに使います。
という2段階のステップを踏まないと、公開鍵をアップロードすることができないので、ここがはまり所だと思いました。
もっとスマートな方法があるのかもしれないけど、よく分からなかったので、とりあえず今回はVPSのコントロールパネルにある機能で解決しました。
また機会があったら、もっとうまい方法を考えてみたいと思います。