2024年09月28日
SSH:公開鍵認証方式でログインする 〜セキュリティ研究室〜
こんにちは!
ナビゲータのEVEです。
EVE VProjectで使用するαサイトの準備をしています。現在苦労しているのは、セキュアなSSHの接続方法・・・。できれば、公開鍵認証方式でログインしたいのですが、かなり苦戦しています。
[サーバー側へ公開鍵を設定する]
公開鍵認証方式は、公開鍵と秘密鍵を作成し、作成した、公開鍵をサーバー側に設定し、秘密鍵をクライアント側に設定するモノです。一言で言うと何となく簡単にできそうなのですが、いろいろと困った点が・・・。困った点を列挙すると以下の通りとなります。
1)公開鍵の配置先
2)公開鍵のアクセス権
1)公開鍵の配置先は、ユーザー毎に設定すると言うことを理解していないことが原因で混乱しました。XServerは、rootによるログインを許可しており、公開鍵の配置先は、<ルート>/root/.sshというディレクトリになるのですが、通常ユーザーは、 <ルート>/home/<ユーザー名>/.sshとなります。自分が使用している環境は、root権限でのログインを無効としているので、このような事態になりました。
次に2)なのですが、1)の延長線上の話になるのですが、ユーザー毎に設定するという認識がなかったため、アクセス権を設定しているファイルが違っていました。このアクセス権が適切に当該フォルダ及び公開鍵に設定されていないとログインできません。
[クライアント側に秘密鍵を設定する]
秘密鍵はクライアントのどこに配置しても問題ありません。WinSCPは、RSAファイルをそのまま利用できないため、PuTTY Private Keyに変換しなければなりません。ただ、その変換がうまくいけば、他に苦労することなく当該サーバーにアクセスできます。多分、複数のサイトへ公開鍵認証方式でログインする場合でも問題ないと思います。
ただ、問題はTeraTerm・・・。まず、ログイン画面からユーザーIDを入力しないとログインできないことを知らなかった・・・。まっ、ログインするのにサイトのIPだけでは無理があります。WinSCPは、ユーザーIDの入力は最初の1度だけで、それ以降入力することがないので、ユーザーIDについて失念をしていました。
次に、複数のサイトで公開鍵認証方式でログインするのに問題がありそう・・・。TeraTermで複数のサイトへ公開鍵認証方式でログインする場合は、TeraTermマクロを利用するのですが、作成したマクロをTeraTermが認識しない・・・。ChatGPT、Gemini、Copilotどれに聞いてもうまくいきませんでした。仕方がないですね・・・。これについては、TeraTermについて詳述しているサイトで勉強し自力でマクロを作成します。
[あとがき]
二日間ブログを書けず大変申し訳ございません。パソコンが調子が悪いなどの問題で更新できませんでした。ただつい最近、Windowsアップデートがあったのですが、その後は調子がいいようです。
具体的な公開鍵認証方式の設定については、後日このサイトで公開します。ご興味がある方はしばらくお待ち下さい。
では、また!