お名前.com レンタルサーバー(RS)にSSH接続 #5 – Windows標準のssh.exe

今まで、TeraTerm を使ってお名前.com レンタルサーバー(RS)にSSH接続していたのですが、2024年のどこかで、SSH接続ができなくなりました。TeraTerm がサポートしている鍵交換アルゴリズムが足りないからでした。そのため、TeraTerm 以外の方法で、SSH接続します。

お名前.com レンタルサーバー(RS)にSSH接続

お名前.com レンタルサーバー(RS)を使ってWEBやメールの運用をしています。このレンタルサーバーは、WEB UIであるコントールパネルが用意されており、多くはこのコントロールパネルから設定可能です。しかし、CUI であるコンソールを使いたいこともあります。

お名前.com レンタルサーバー(RS) でコンソールを使うときは、SSH接続します。

お名前.com レンタルサーバー(RS)ではSSH接続で、ユーザー名とパスワードによるログオンは許可されていません。ユーザー名と秘密鍵によるログオンのみが許可されています。

そのため、お名前.com レンタルサーバー(RS) にSSH接続するための事前準備として、SSH接続用の秘密鍵・公開鍵を作成し、公開鍵を登録する必要があります。

前回までの投稿で、

  • レンタルサーバー側の事前準備の方法
    秘密鍵と公開鍵の作成と、公開鍵の登録
  • PC側の事前準備の方法
    TeraTerm のインストールと秘密鍵ファイルの準備
  • TeraTerm を使ったSSH接続方法
    実際のSSH接続の方法

を説明しました。

これで、TeraTerm を使ってレンタルサーバーにSSH接続ができていました。

TeraTerm でお名前.com レンタルサーバー(RS)にSSH接続できなくなる

TeraTerm を使って、レンタルサーバーに以下の手順でSSH接続できていました。

  1. レンタルサーバーに対して「新しい接続」を実行する
  2. 「新しい接続」ダイアログ画面で接続設定をする
  3. 「セキュリティ警告」ダイアログ画面で接続対象を確認する
  4. 「SSH認証」ダイアログ画面でSSHの接続設定をする
  5. SSH接続が完了

各手順の以前の投稿を参照してください。

ところが、2024年のどこかで、TeraTerm を使って、お名前.com レンタルサーバー(RS) にSSH接続できなくなりました。レンタルサーバー側の設定変更で、SSH接続に必要な鍵交換アルゴリズムが変更され、そのアルゴリズムをTeraTerm v5.3がサポートしていないためでした。

バージョン5.4以降のどこかのバージョンで、curve25519-sha256系の鍵交換アルゴリズムがサポートされるのが待ち遠しいです。

ただ、TeraTermでcurve25519-sha256系の鍵交換アルゴリズムがサポートされるまでは、TeraTerm 以外の手段でSSH接続する代替手段が必要です。

今回は、その代替手段の一つとして、Windows 10/11でOSがサポートしている、sshコマンド (ssh.exe) を使った方法を説明します。

sshコマンドは、curve25519-sha256系の鍵交換アルゴリズムをサポートしています。

なお、sshコマンドはWindows 11ではリリース当初のバージョンから使えます。しかし、Windows 10ではWindows 10 Fall Creators Update(バージョン1709)以降のバージョンから使えるようになりました。

sshコマンドでお名前.com レンタルサーバー(RS)にSSH接続

Windowsに標準で利用できるsshコマンド(ssh.exe) を使ってお名前.com レンタルサーバー(RS)にSSH接続するためには、前回までに説明した、レンタルサーバー側の事前準備(すべて必要)とPC側の事前準備(一部のみ必要)が終わっている必要があります。

事前準備とは、

  1. お名前.com レンタルサーバーのサーバー管理画面でSSH用の秘密鍵・公開鍵の作成と登録をする
  2. 秘密鍵をレンタルサーバーにSSH接続したいPCに保存する。
  3. PCにTeraTerm をインストールする (今回は TeraTerm を使わないのでこの準備は不要になります)

でした。

これらの手順を済ませておけば、sshコマンド(ssh.exe)を使って、レンタルサーバーに以下の手順でSSH接続できます。

  1. コマンドプロンプトを起動する
  2. 接続パラメータを引数で指定して、sshコマンドを実行する
  3. 「セキュリティ警告」で接続対象を確認する
  4. SSH接続が完了

各手順の詳細は以下の通りです。

接続手順

1. コマンドプロンプトを起動する

スタートボタンをクリックして、スタート画面が開いた状態で、cmd と入力します。すると「コマンドプロンプト」が候補に表示されます。この候補に表示された「コマンドプロンプト」を起動します。

コマンド プロンプトの検索 (cmdと入力)

なお、ここではコマンドプロンプトを使いましたが、「ターミナル」アプリでもよいです。

コマンド プロンプト

2. 接続パラメータを引数で指定して、sshコマンドを実行する

コマンドプロンプトが表示されたら接続先のレンタルサーバーの情報を引数で指定して、sshコマンドを実行します。

お名前.com レンタルサーバー(RS)の接続情報は、レンタルサーバー側の事前準備 で説明したときの「SSHキーの詳細情報」画面から確認できます。

ホスト名: wwwXX.onamae.ne.jp
TCPポート#: 8022
ユーザー名: rXXXXXXX
秘密鍵ファイル: サーバーに登録した公開鍵に対応する秘密鍵ファイル

なお、2024年9月時点の お名前.com レンタルサーバー(RS)では、ホスト名は、wwwXX.onamae.ne.jp の形式です。XXの部分はレンタルサーバーのインスタンスごとに異なります。

SSHのTCPポート番号は、8022 です。

ユーザー名は、2004年9月時点ではrXXXXXXX の形式(XXXXXXXの部分はレンタルサーバーの契約ごとに異なる7桁の数値)です。

秘密鍵ファイルはレンタルサーバー側の事前準備で用意した秘密鍵ファイルを指定します。事前準備でコントロールパネル上で公開鍵と秘密鍵のペアを自動生成した場合は、その時にダウンロードして保存した秘密鍵のファイルとなります。

SSH接続情報は、sshコマンドのコマンドライン引数で指定します。ホスト名は、コマンドライン引数に直接指定します。それ以外の情報は、コマンドラインオプションとして指定します。ポート番号は、コマンドラインオプションとして -p 8022 の形式で指定します。ユーザー名は、コマンドラインオプションとして、 -l rXXXXXXX の形式で指定します。秘密鍵ファイルは、コマンドラインオプションとして、 -i filePath の形式で指定します。

例えば、接続情報が

ホスト名: www99.onamae.ne.jp
TCPポート#: 8022
ユーザー名: r1234567
秘密鍵ファイル: C:\private-keys\r1234567.pem

とした場合、コマンドラインに入力するのは以下となります。

ssh www99.onamae.ne.jp -p 8022 -l r1234567 -i "C:\private-keys\r1234567.pem"
コマンド プロンプトでsshを実行

上記のように、コマンドライン引数を適切に設定してsshコマンドを実行します。

3. 「セキュリティ警告」で接続対象を確認する

過去にsshコマンドで接続したことのないホストの接続する場合、過去に接続したことあるがホスト情報を保存していなかった場合、「未知の鍵(Unknown key)」警告が表示されます。

過去にsshコマンドでこのホストに接続したことがあり、ホスト情報をKnown hostsリストに追加保存した場合には「未知の鍵(Unknown key)」警告は表示されません。

C:\Users\admin>ssh www99.onamae.ne.jp -p 8022 -l r1234567 -i "C:\private-keys\r1234567.pem"
The authenticity of host '[www99.onamae.ne.jp]:8022 ([150.95.219.81]:8022)' can't be established.
ED25519 key fingerprint is SHA256:CKuMz66gWbH7kRkzOyjD+J006QwjA3ds2UoS55FiYQc.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

内容を確認後、接続しようとしてるレンタルサーバーで間違いない場合は、yesを入力してenterキーを押します。

Warning: Permanently added '[www99.onamae.ne.jp]:8022' (ED25519) to the list of known hosts.
[r1234567@web0099 ~]$

接続しようとしているレンタルサーバーでない場合は、noを入力してenterキーを押して、接続を中断します。

コマンド プロンプトのsshでセキュリティ警告

4. SH接続が完了

ホストへの接続が初回の場合は、「未知の鍵(Unknown key)」警告が表示され、下記のようにレンタルサーバーにSSH接続できます。

コマンド プロンプトのsshコマンドでssh接続(初回)

ホストへの接続が2回目以降の場合は、「未知の鍵(Unknown key)」警告は表示されず、下記のようにレンタルサーバーにSSH接続できます。

コマンド プロンプトのsshコマンドでssh接続(2回目以降)

以上がWindowsのsshコマンドを使ってSSH接続する手順でした。

TeraTermのv5.4以降の将来のバージョンで、curve25519-sha256系の鍵交換アルゴリズムがサポートされるまでは、sshコマンドを使うことにしたいと思います。

コメントを残す