#はじめに
タイトルから分かるように、本記事を起こしたきっかけはPuttyで作成した秘密鍵を使ってUbuntuPCからLinuxサーバへログインしようとしたところ、sshログインができなかったことです。
#鍵の作成
鍵の作成はWindowsPCにPuttyをインストールして作成しました。サーバ担当者に公開鍵を設置してもらってログイン、というよくあるパターン。WindowsPCからは問題なくLinuxサーバへログインできていました。
ところが、こちらで作成した秘密鍵をUbuntuPcに設置したところ、ssh接続に失敗しました。以下はその時のメッセージです。
$ Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
権限も合っている、設置場所も間違っていない、その他諸々、基本とされることは確認したのですが、それでもつながリませんでした。そしてようやくたどり着いたのが、秘密鍵の形式の違いです。どうやらOpenSSHとPuttyでは鍵の形式が違うために、sshログインエラーが生じてしまうようです。
#Putty形式からOpenSSH形式への変換
秘密鍵の形式の変換はputtygenコマンドで簡単に行うことができます。
前提として、putyygennのインストールが必要です。インストールは以下のコマンドで行えます。
※ubuntuでのインストールコマンドです。
$ sudo apt install putty
puttyをインストールすることにより、puttygenコマンドが使えるようになります。形式を変換する前に、秘密鍵の置いてあるディレクトリへ移動しておきましょう。
$ cd 鍵のおいてあるディレクトリ
以下のコマンドで形式を変換します。
$ puttygen private_key.ppk -O private-openssh -o id_rsa
「private_key.ppk」はご自身の所有している秘密鍵の名前に置き換えてください。「id_rsa」も変更後に使用したい名前に置き換えてください。
あとは変換した秘密鍵を~/.ssh配下に設置するなりして、サーバへのログインをお試しください。
#あとがき
私はこのあとログインに失敗しましたが、~/.ssh配下にid_rsa.pubを配置していたため、ログイン失敗となりました。id_rsa.pubを削除したら正常にログインができました。
稚拙な文章ではありますが、同様の事象でお困りの方の手助けになれば幸いです。