ロリポップに公開鍵認証で SSH 接続できるようにした

このサーバーはロリポップのものです。今まで、サーバーに ssh 接続するのに、パスワード認証で行っていました。一々、暗証番号をクリップボードにコピーしてから入力するのが面倒になり、何とかならないものか、と調べてみたら、公開鍵認証ができるらしいというので、試してみました。

その時の備忘録です。

悩んでみた

無知を晒すようで、恥ずかしいのですが…

  1. 公開鍵を置くのはどっち?

    鍵としては2種類、公開鍵と秘密鍵を作ります。そしてサーバーとローカルにそれぞれ保管しますが、どちらに何を置けば良いのでしょうか? SSH 接続ではなく、「何かファイルを渡してもらう際に、符号化する鍵を渡す」というシチュエーションだと、渡す鍵は公開鍵です(よね?)。でも、今回は、利用するのは、ある意味でどちらも自分です。サイト管理を他人に任せるというわけでもないので、正直言うと秘密じゃなくて良いんです。
    感覚的には、公開しても安全なものなのが公開鍵なんだから、公開鍵はネットワーク接続に常に晒されているサーバーに置くのが正解なのだと思います。でも、ひょっとして、ネットワークを通過する時は危険が伴うので、作ったマシンから転送するのを公開鍵とした方が良いのでしょうか?
    「秘密」「公開」という単語が悩ませてくれます。
    ネットで例を確認したら、SSH 接続される側に公開鍵を置くのが見つかったので、そちらで行ってみる事にします。

  2. 鍵はどこで作るのか?

    ローカルの Linux マシンでも、サーバーでも鍵は生成できるようです。ネットで調べると、両方のパターンがあったように思います。機械的に作るのであれば、どっちで作っても一緒なのでしょう。公開鍵をサーバー側に置くと決めたので、ネットを通過させるのを公開鍵とする為に、手元にあるローカルの Linux マシンで作成する事にしました。

試してみよう

こちらを参考に実施してみました。記述がサーバA、サーバBと、どちらもサーバなのでちょっと紛らわしいです。

基本的に記述通りにしてみました。公開鍵の転送方法で悩みました。「FTPソフト等で サーバB に接続し、 id_rsa.pub を転送します。」とあるのですが、今使っているFTPソフトで、ファイルを置きたい場所に直接転送できないのです。FTPで転送できるより上位のディレクトリに置きたいのです。FTPで転送できるのは、公開される領域です。公開鍵とは言え、一時的とは言え、誰でもアクセスできうる場所に置きたくはないと思いました。

さて、どうしよう、と思ったのですが、このサーバーに設置していた、ownCloud に格納して渡す事にしました。ownCloud のデータ置き場は、公開される領域より上位のディレクトリにしてありますので、取り敢えず安心出来ます。

で、疎通確認してみましたが、やはりパスワードを聞かれます。何度やっても同じです。反映に時間がかかるのかも、と思いましたが、そんな記述見たこと無いし、いつまで待っても同じでした。

ここで、上の「悩んでみた」で決めた事がグラつきました。サーバーで鍵を作って、などやってみましたが、ダメです。必ずパスワードを聞いてきます。

解決しよう

ネットで徘徊していると、ロリポップへの公開鍵認証によるSSH接続をTeraTermにてマクロ自動化というのを見つけました。そう、Linux の ssh コマンドにも疑問の目を向けたのです。

書かれている通りに、行ってみたら出来ました! 公開鍵で接続するまでで、マクロ化までは行っていませんが。

この手順で発見がありました。サーバー側にも、「.ssh/config」を記述するという事です。これが今まで接続できない理由なのだろうと思いました。で、Linux の ssh で接続してみたところ、あっさり接続です。ssh 、あなたは無罪だ。

サーバー側の「.ssh/config」がキーだったようですね。でも、このサーバー側の「.ssh/config」の1行目(Host lolipop.jp)は何の意味があるのか、分かりません。ローカル側のそれと一致していなくても良いようです。動いてるから、まあ良いでしょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA