MobaXTermでのSSH公開鍵設定

クラウド

このところお気に入りで使っているSSHクライアントのMobaXTermを使って、リモートサーバーの公開鍵を設定する方法です。

何気なくできることが多いのですが、時々忘れてはまるので備忘録がてら記載しています。

MobaXTerm

使いこなせているとはとても言えないですが、かなり便利なSSHクライアントです。無料のPersonalバージョンと有料のProfessionalバージョンがあります。2022年8月現在、69USDもしくは49EUROですので、約10000円ですね。

Professionalバージョンは利用権は永続ですがアップデートが12か月なので未購入で検討中です。アップデートはかなりの頻度で、バグフィックスや新機能追加が出ているのでライセンスが切れたらPersonalに戻ると思いますし、そもそもPersonalでも必要十分です。開発サポート的な意味でサーバーいじりが落ち着いたころに買うと思います。

バージョン履歴(2022年8月26日現在)

  • Version 22.1 (2022-06-26)
  • Version 22.0 (2022-03-04)
  • Version 21.5 (2021-11-25)
  • Version 21.4 (2021-10-07)
  • Version 21.3 (2021-08-27)
  • Version 21.2 (2021-06-14)
  • Version 21.1 (2021-04-20)
  • Version 21.0 (2021-03-06)
  • Version 20.0 (2020-02-15)
  • Version 1.0 (2008-04-16)

だいたい毎月新しいバージョンがリリースされ、メジャーアップデートっぽいものも年に一回くらいで行われています。活発ですね。

MobaXTerm SSH Key Generator

公開鍵・秘密鍵の生成

メニューの「Tools」から「MobaKeyGen (SSH key generator)」を起動したら、下部にあるParameterもしくはメニューの「Key」から作成する秘密鍵・公開鍵ペアの種類、作成方法を選びます。

SSHクライアントのログインなら今のところEdDSAを選べば良さげですが、他に使用予定のSoftEtherはRSA 2048しか対応していないのでそちらを選びます。(ビット数はParameterからしかセットできないようです)

  • SSH-1 key (RSA)
  • SSH-2 RSA key
  • SSH-2 DSA key
  • SSH-2 ECDSA key
  • SSH-2 EdDSA

が選べます。

「固有証明書認証」または「署名済み証明書認証」を、目的に応じて選択することができます。

SoftEther VPN で使用することができる証明書は、X.509 形式で PKI アルゴリズムに RSA が使用されており、公開鍵および秘密鍵のビット長が 1,024bit または 2,048bit のものです。また、X.509 証明書のバージョンは、「バージョン 1 以降」のものであれば使用することができますが、一部の拡張フィルードについては非対応 (その内容を無視する) である場合があります。

2.2 ユーザー認証 - SoftEther VPN プロジェクト

SoftEtherの記載はちょっと曖昧なので、SSH-2 RSAが使えるかとか、固有証明書認証ではEdDSAが使えるかとかは確認してみたいと思います。(固有証明書は以前試した時X.509形式で作らなかった気がするので。うろ覚え)

公開鍵をSSHサーバーに渡す

よく見ると画面上に書いてあるのですが、OpenSSHサーバーに渡す公開鍵は、「save public key」や「export OpenSSH key」ではありません

画面上の「Key」のところに、「public key for pasting into OpenSSH server (~/.ssh/authorized_keys)」と丁寧に書かれていて、その下に編集できないテキストボックスが置かれています。これをコピペしてサーバーに設定しなさいということです。

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCT6/I8Crr5PZsHWNYjL6Akal6logqze2aP8XMsfOeSG0tZSKKLNQPL6qBk/82jiPw7LYIUa0A2/MAJWkDheLIUvL7J1GwpEjWsKQLMHnuTxFm3SnxOVuPn5pAu1XQxyd3A54i7mPzh0EvnQbjhKu8XPd9JLibZnxwqUbnyje8kogwViAObdFc4luxI7mYPWwQS22CGSA1e/fdpglrj10qAT12ILlCcE9Yh9Nv+2b2o2kuv3zTVdeZxQ5ljhm0KigSOqWgBmWir2jssAYTiDgQ+rHDe4CCUjZuVF3KybhulkXK87LMurTbO0jg9OX5PWTThKjAtO6zD82vhqwcOR/Mx rsa-key-20220826

こんな感じです。さらに下のテキストボックスで「key comment」を編集すると上のテキストボックスにも反映されます。

渡し方は、まずSSHクライアントを開いてリモート接続先のSSHサーバーへ(ユーザー―名とパスワードもしくは、すでに設定してある公開鍵認証を使って)接続します。

接続できると左側ペインにファイルマネージャーが出てきています。変えられるのかわかりませんが初期設定のままであれば、ログインユーザー名のホームディレクトリが開かれているはずです。

ホームディレクトリ直下にある隠しディレクトリ、「.ssh」を開いて「authorized_keys」ファイルをダブルクリックすると標準テキストエディタの「MobaTextEditor」が開きます。Windowsだと開いた直後には改行コードがDOSフォーマットになっていると思うので、「Format」から「UNIX」を念のために選んでおきます。テキストエディタ内で、MobaXTerm SSH Key Generatorウィンドウからコピーした公開鍵をペーストして保存したら終了です。

秘密鍵をMobaXTerm用に保存

秘密鍵をMobaXTermからアクセスできる場所に保存します。セキュリティとして、Key Passphraseをセットしてから「Save Private Key」を選んでどこかに保存すれば完了です。

パスフレーズを設定していないと警告が出ますが、今回はなしで保存しました。(これだとSSHクライアントを開けばすぐにサーバーにアクセスできてしまいます)

セッションの設定で秘密鍵を指定

MobaXTermのメイン画面に戻り、接続先のリストから設定メニューを開きます。「Advanced SSH settings」のところで、「Use Private Key」をチェックしてファイルを指定すれば完了です。設定画面上部の「Specify Username」でログインユーザーを指定していればダブルクリックするだけで接続できますし、設定してなければ「login as:」とユーザー名を聞かれ公開鍵を設定したログインユーザーであれば接続できるようになります。

(公開鍵を使うかどうかにかかわらずサーバーを信頼して信頼済みサーバーにするかどうかは一度はフィンガープリントが表示されて聞かれるのでそこを除けばダブルクリックするだけで接続できるようになります)

SSHサーバーのログイン設定

Ubuntu 22.04 Serverでは、SSHサーバーの設定は、/etc/ssh/sshd_configですので、こちらを編集して、

PasswordAuthentication no
PubkeyAuthentication yes

を書いて再起動すればパスワード認証が停止します。PubkeyAuthentication yesはなくても大丈夫そうですが、設定項目にあるので一応書きました。

サーバーごと再起動するか、SSHサーバー(sshdサービス)を再起動すれば設定が反映されます。

#すぐサーバーごと再起動する場合
sudo shutdown -r now

#SSHデーモンだけ再起動する場合
sudo systemctl restart sshd

 

コメント

タイトルとURLをコピーしました