Vim で 'authorized_keys' ファイルを作成すると SSH アクセスが拒否される

Vim で 'authorized_keys' ファイルを作成すると SSH アクセスが拒否される

Ubuntu 16.04 AMI を使用して ec2 インスタンスを作成しました。この AMI の sudo ユーザーを次のように作成しました。

sudo adduser myuser
sudo usermod -aG sudo myuser

次に、すでに持っている RSA キーペアを使用して、ユーザーに SSH アクセスを許可しようとしました。新しいユーザー用に .ssh ディレクトリを作成しました。

mkdir ~/.ssh
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

公開鍵をコピーして「authorized_keys」に貼り付けました。次に、ec2 を終了して、次のように接続をテストしました。

cd ~/.ssh
ssh -i "mypem.pem" [email protected]

「アクセスが拒否されました(公開鍵)」というエラーが発生しました

そこで、ユーザーを削除して別のユーザーを作成しました。今回は、Vim ではなく nano を使用して 'authorized_keys' ファイルを作成し、動作しました。

これを経験した人はいますか?

答え1

おそらく間違って貼り付けたのでしょう。

  • それは で始まりますかssh-rsa、それとも で始まりますかssh-ed25519?
  • 前にスペースがありますか(スペースは不要です)
  • 大文字/小文字は保持されますか?
  • 行末のコメントの前にスペースはありますか?

vim に何かを貼り付ける前に、 を使用する必要があります:set paste。これにより、アクティブな自動補完/自動インデント/... マクロがすべてオフになります。

もう 1 つ、 と書いていますが、これは ssh-keys ではなく openssl ファイルの通常の拡張子です。 ssh-pubkey として/ をmykey.pem使用したのは確かですか?id_rsa.pubid_ed25519.pub

答え2

このようなことが起こった場合は、ViM で 、 、 を確認することをお勧めします。nanofileencryptionで編集したファイルと vim で編集したファイルの両方を比較します。それらを vim で開き、次の点を確認します。fileformatbomb

:set bomb? これはバイト オーダー マークです。通常、Windows 上の notepad.exe を使用して UTF-8 ファイルを編集するときに設定されます。私はよくそれで問題に遭遇しました。

:set ff? ファイル形式dosまたはunix.dos の行末は UNIX とは異なります。

:set fenc? ファイルのエンコーディング: おそらく、あるエディターが UTF-8 ではなく latin1 に変更します。

答え3

myuser は .ssh と keyfile にアクセスできる必要があります。誰が所有しているか確認してください。

関連情報