LoginSignup
0
0

More than 1 year has passed since last update.

VPS(Ubuntu)にSSH接続時にinvalid formatとなった

Posted at

はじめに

ここ最近VPSを触っているのですが、WindowsのPowerShellからVPSにSSH接続しようとしたときに、うまくいかなかったのですが、なんとか解決できたので、ほかにも同じように困ってしまった人がいたときのために記事にしておきます。

環境

VPS: Conoha VPS (OS:Ubuntu22.01)
ローカル: Windows11

経緯

暗号鍵作成

VPS側で以下のようにコマンドを打って暗号化キーを作成しました。
パスフレーズはなしで作成しています。

cd ~/.ssh
ssh-keygen -t rsa -b 4096 -C "メールアドレス"

作成された鍵をWindows側に作成

sshフォルダ内にid_rsaとid_rsa.pubができています。
サーバー側に公開鍵を置いて、クライアント(windows)側に秘密鍵を置く必要があるので、コピーして作成しました。
※これが実はエラーとなる原因でした・・・

cat ~/.ssh/id_rsa

表示されたKEYをコピー

-----BEGIN OPENSSH PRIVATE KEY-----
AAAABBBBCCCCDDDDDXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-----END OPENSSH PRIVATE KEY-----

Windows側にid_rsaファイルを適当に作成して、メモ帳で開いて、ペーストして保存する。

接続確認

さて、これでOKと思って接続しようとしたところ、以下のようにエラーがでました。

Load key "id_rsa": invalid format
[user]@[xxx.xxx.xxx.xxx]: Permission denied (publickey).

フォーマットがあかんと叱られてしまいました。

フォーマット確認

とりあえずサーバー(Ubuntu)側のフォーマットを確認します。

 nkf --guess id_rsa

すると結果は LF となっていました。

ASCII (LF)

Windows側のフォーマット確認

サクラエディタ使うと分かりやすいので、そちらで見てみました。
image.png
CRLFになってました。

解決方法

コピペがダメだったので、Windows側で鍵を作成して、公開鍵だけをサーバーにアップする形に変更しました。

PowerShellで鍵を作る

PS C:\ConoHaVps\id_rsa> ssh-keygen -t rsa -b 4096 -C "メールアドレス"

パスフレーズはなしで作成します。
できるのか不安でしたが、PowerShellでもssh-keygenが動きました。
初期状態でできるのか、それとも今までいろいろと触ってきた中で入れてあったのか覚えていないですが、自分の環境で動いたので、使えるということだけは事実です。(確認不足すみません)
ちなみに、できあがった鍵をサクラエディタで見たところ、無事にLFとなっていました。

scpでサーバーにアップ

公開鍵(id_rsa.pub)をアップロードします。

scp id_rsa.pub [user]@[xxx.xxx.xxx.xxx]:.ssh

ログインしてみる

先ほど作成した秘密鍵(id_rsa)を使ってログインしてみます。

 ssh -i id_rsa [user]@[xxx.xxx.xxx.xxx]

無事にログインできました!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0