(Vagrant) SSH接続時に発生する Permission denied (publickey,gssapi-keyex,gssapi-with-mic) エラーの対応


はじめに

この記事ではWindows10(1909), Oracle VirtualBox 6.0 + Vagrant 2.2.6 の環境にて立ち上げたCentOS 8で直面したSSH接続に関する私のトラブルシュートを記録したものです。

直面したこと

VirtualBoxで立ち上げたCentOSに対して、TeraTermを用いてSSHしようとしたところプレーンパスワードでのアクセスができなかった。

SSHのアクセスログを確認

SSHアクセス時のログを出力するため、PowerShellからオプション -vvv を指定して接続をトライ

ssh -vvv [email protected]

次のようなログを確認(一部抜粋)

PS C:\Vagrant\centos8> ssh -vvv [email protected]
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
debug3: Failed to open file:C:/Users/localadmin/.ssh/config error:2
debug3: Failed to open file:C:/ProgramData/ssh/ssh_config error:2
debug2: resolve_canonicalize: hostname 192.168.33.10 is address
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to 192.168.33.10 [192.168.33.10] port 22.
debug1: Connection established.
debug3: Failed to open file:C:/Users/localadmin/.ssh/id_rsa error:2
debug3: Failed to open file:C:/Users/localadmin/.ssh/id_rsa.pub error:2
debug1: key_load_public: No such file or directory
.
.
.
debug1: Next authentication method: publickey
debug1: Trying private key: C:\\Users\\localadmin/.ssh/id_rsa
debug3: no such identity: C:\\Users\\localadmin/.ssh/id_rsa: No such file or directory
debug1: Trying private key: C:\\Users\\localadmin/.ssh/id_dsa
debug3: no such identity: C:\\Users\\localadmin/.ssh/id_dsa: No such file or directory
debug1: Trying private key: C:\\Users\\localadmin/.ssh/id_ecdsa
debug3: no such identity: C:\\Users\\localadmin/.ssh/id_ecdsa: No such file or directory
debug1: Trying private key: C:\\Users\\localadmin/.ssh/id_ed25519
debug3: no such identity: C:\\Users\\localadmin/.ssh/id_ed25519: No such file or directory
debug1: Trying private key: C:\\Users\\localadmin/.ssh/id_xmss
debug3: no such identity: C:\\Users\\localadmin/.ssh/id_xmss: No such file or directory
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
[email protected]: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

どうやら認証するための鍵を参照できない模様

解決した方法

sshが参照しようとしたところC:\\Users\\localadmin/.ssh/にはRSA鍵が存在しておらず接続ができなかった。
そこで、TeraTermの新規接続画面にて次の手順を実施したところ接続できるようになった。

  • TeraTermの起動
  • SSH を選択し接続
    • ホストはVagrantで指定したIPアドレス
  • 「SSH認証」画面でユーザ名を入力し、「RSA/DSA/ECDSA/ED25519鍵を使う」にラジオボタンを合わせ、「秘密鍵」ボタンを押下する
  • 今回の場合はVagrantのホームフォルダ\ホストのフォルダ\.vagrant\machines\default\virtualbox配下に"id_rsa"ファイルが存在していたためそれを指定
  • OKボタンを押下すると接続できました。