質問: ### 前提・実現したいこと Windows10のローカルマシンから、CentOSのリモートマシンRM1を踏み台にして、別のCentOSリモートマシンRM2にSSHログインするためのconfigファイルを作成したいのですが、上手くいきません。 ### 発生している問題・エラーメッセージ ``` エラーメッセージ λ ssh rm2 username@YYY.YY.YY.Y: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,hostbased). ``` ### 該当のソースコード ``` ソースコード Host rm1 Hostname XXX.XX.XX.X User username IdentityFile C:\Users\username\key ServerAliveInterval 120 ServerAliveCountMax 5 host rm2 Hostname YYY.YY.YY.Y User username IdentityFile C:\Users\username\key ProxyCommand ssh -CW %h:%p rm1 ServerAliveInterval 120 ServerAliveCountMax 5 ``` ### 試したこと 以下の方法でのRM2へのログインは成功しました。 λ ssh rm1 -t "ssh YYY.YY.YY.Y" [username@rm2 ~]$ または、 λ ssh rm1 [username@rm1 ~]$ ssh YYY.YY.YY.Y [username@rm2 ~]$ さらに、上記でrm2へのログインは鍵を指定しなくても通っているため、configファイルの「host rm2」から"IdentityFile C:\Users\username\key"を削除した場合も試しましたが、同様のエラーが発せしました。 λ ssh rm2 username@YYY.YY.YY.Y: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,hostbased). ### 補足情報(FW/ツールのバージョンなど) ローカルマシン: Windows 10 Pro 1803 リモートマシン: CentOS Linux release 7.4.1708 (Core) SSHクライアント: Windows 10 標準 OpenSSH Client 使用コンソール: Cmder Version 1.3.11.843
回答: > > ssh rm2 > > username@YYY.YY.YY.Y: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,hostbased). > > > エラーメッセージから rm2 に接続しに行ってるのでおそらく違う問題でしょうけれど、 手元の環境では以下のように ssh.exe にしなければいけませんでした。 ``` host rm2 ~略~ ProxyCommand ssh.exe -CW %h:%p rm1 ``` 念のためこれを試してみて下さい。 駄目だった場合は `ssh -vvv rm2` の出力を出せませんか? 設定ファイルには ``` host rm2 ~略~ IdentityFile C:\Users\username\key ``` と書かれていますが、ログを見るとこの`C:\Users\username\key`を使おうとしていないようです。 そして他には公開鍵が作られていなく、サーバも公開鍵認証のみ受け付けるようになっている為に認証が失敗しています。 この行は今もちゃんと書かれていますか? 書かれていない場合は書いた状態での `ssh -vvv rm2` の結果を出せますか? ``` λ ssh -vvv YYY.YY.YY.Y OpenSSH_for_Windows_7.6p1, LibreSSL 2.6.4 ``` これはローカルのWindows10のマシンで実行していますよね。 そうではなく、`ssh rm1` でRM1にログインした状態で、そこから`ssh -vvv YYY.YY.YY.Y`をした結果を出せますか? ログの量が多いので、コメントではなく質問本文に追加する形の方がいいと思います。