TOP / ナレッジ / サーバ・ネットワーク

CentOS 8のサーバに公開鍵でSSH接続できなかったのはRSA形式の古い暗号鍵を使っていたから

VultrのHigh Frequency ComputeにCentOS 8をインストールしてUnixBenchまで行ったで書いたように、VultrにCentOS 8のサーバを新たに立ててみました。

PuTTY Key Generator

スポンサードサーチ

VultrのHigh Frequency ComputeにCentOS 8をインストールしてUnixBenchまで行ったで書いたように、VultrにCentOS 8のサーバを新たに立ててみました。

しかし、設定を行う中でMacからの公開鍵でのssh接続はできるのに、Windows PCからは公開鍵を使ったssh接続がどうしてもできません。

他のサーバには同じ公開鍵を使ってssh接続ができているので、CentOS 8を入れた新サーバのみの現象です。

色々試した結果、設定した公開鍵の形式が古くて利用できなくなっていたのが原因でした。

発生していたエラー

Windows PCではRLoginを使って公開鍵認証でssh接続を行っていました。

その際に表示されたエラーがこちら。

RLoginでのssh接続エラーメッセージ
RLoginでのssh接続エラーメッセージ

SSH2 User Auth Failure

“publickey,gssapi-keyex,gssapi-with-mic” Status=1004
Send Disconnect Message…
publickey(ssh-rsa), gssapi-with-mic(XXX.XXX.XXX.XXX)

RLoginでのssh接続エラーメッセージ

Macで接続先のサーバに入って、sshのログを確認してみると、以下のようなエラーメッセージが記録されていました。

$ tail /var/log/secure
Jun 29 02:53:18 XXXXXX sshd[246396]:  error: userauth_pubkey: could not parse key: Invalid key length [preauth]

could not parse key(鍵を解析できませんでした):Invalid key length(無効な鍵の長さ)と出ています。

調べてみると、OpenSSH 7.0 was released on 2015-08-11に確かに以下の記載がありました。

Refusing all RSA keys smaller than 1024 bits (the current minimum is 768 bits)

OpenSSH 7.0 was released on 2015-08-11

1024ビット未満のすべてのRSA鍵は拒否されます。

Support for ssh-dss, ssh-dss-cert-* host and user keys is disabled by default at run-time. These may be re-enabled using the instructions at http://www.openssh.com/legacy.html

OpenSSH 7.0 was released on 2015-08-11

また、デフォルトでは、ssh-dss、ssh-dss-cert- *ホストおよびユーザーキーのサポートが無効になっています。

つまり、OpenSSH 7.0 以降の環境では、1024ビットの古いRSA鍵やssh–dss 鍵は使えないということです。

新たに鍵を生成

ということで、ssh接続に使える鍵を新たに作りなおすことにしました。

Windows PC用なので、PuTTY Key Generatorで作成をします。

PuTTY Key Generator
PuTTY Key Generator

PuTTY Key Generatorでは、RSA、DSA、ECDSA、Ed25519、SSH-1(RSA)が使えます。

SSH-1(RSA)のRSA1は脆弱性があり、ssh v1を使う場合のみに利用するものですので除外し、DSAは先ほどのssh-dssにあたるためこちらも除外。

RSAは、公開鍵認証でのデファクトであり鍵の長さを1024ビットよりも長くすれば利用できますが、ECDSAは、楕円曲線DSAとも呼ばれRSAよりも解読が困難で処理も早く、Ed25519は、ECDSAと同じく楕円曲線暗号を用いた方式でECDSAより処理が速い。

そこで、今回は安全面と性能面を考慮してEd25519で鍵を作成しましたが、鍵が256ビットなので作成した公開鍵もかなり短くなりました。

公開鍵を設置後、無事にssh接続完了

Ed25519で作成した公開鍵をCentOS 8のサーバに設置した後、再度RLoginでssh接続を行うと、無事に接続ができました。

スポンサードサーチ