AMIから起動したEC2に別のEC2からSSH接続できない
はじめに
EC2(サーバA)→EC2(サーバB)にファイル転送をする必要があったので、SSH接続をしてみたところうまくいきませんでした。
サーバBはサーバAのAMIから起動しており、同じ鍵で入れるはず(だしPoderosa経由では接続できた)のでハマりました。
TL;DR
- Poderosaでの接続とLinuxのsshコマンドでの接続で、使用する秘密鍵の形式が違っていた
- 既存の秘密鍵をOpenSSHに変換したところ、うまくいった
環境
- OS : Windows10
- ターミナルソフト : Poderosa
前提
- 普段はPoderosaでEC2(サーバA)に公開鍵方式でSSH接続している
- サーバAのAMIから起動したEC2(サーバB)に、サーバAからSSH接続したい。
- PoderosaからサーバBには、サーバAへの接続に使う秘密鍵と同じものでSSH接続ができた
- サーバAには、サーバA、サーバBのSSH接続に使用する秘密鍵を配置している
起きたこと
Poderosa→直接サーバBにSSH接続はできたのですが、Poderosa→サーバAに接続し、そこからサーバBに接続しようとすると失敗します。
# 実行コマンドイメージ : サーバAで実行
ssh xxx@サーバBローカルIP -i ~/.ssh/private_key
具体的には、秘密鍵のパスフレーズ入力が失敗し、Permission denied(publickey)
と出ます。
解決策と原因
-vオプションをつけて試してみたところ、
Bad passphrase, try again for
と出て失敗していました。
(もちろんパスフレーズを正しく入力していることは確認済み)
ググると以下の記事が出てきました。
SSH – Bad passphrase, try again for が繰り返されてssh-agentに鍵登録が出来ないです。|teratail
結論として、PuTTYgenで既存の秘密鍵を変換するとうまくいきました。
手順
- メニュー>Conversions>Import Key>秘密鍵をインポート
- Key Passphraseでパスフレーズを設定
- メニュー>Conversions>Export OpenSSH key
- 保存された鍵をサーバA→サーバBへの接続に使用
原因
どうやらPoderosaで接続するときとLinuxで接続するときで、鍵の形式が違うのが原因のようでした。
Poderosa→EC2に接続するときに使う鍵を、そのままEC2→EC2の接続で使うことはできないようです。
まとめ
SSH周りのトラブルは発狂しそうになりますね…
関連記事
SSHで困った事例がたまっています。
ディスカッション
コメント一覧
まだ、コメントがありません