AWSのVPC内EC2インスタンスに踏み台サーバー経由で接続しようとしたら詰まった話のでメモを残したいと思います。
結論から言うと秘密鍵を解決できていなっただけです。
やろうとした事
ProxyCommandを使って一発アクセス
接続先情報
ローカルマシン(Mac)
↓
踏み台サーバー
↓
VPC内インスタンス
※踏み台サーバーには秘密鍵置いていません。
ローカルのssh用設定
.ssh/config
Host bastion
User ユーザー名
Hostname 踏み台サーバーのアドレス
Port ポート番号
IdentityFile 秘密鍵のパス
Host instance
Hostname VPC内インスタンスのアドレス
ProxyCommand ssh -W %h:%p bastion
突然の失敗
ここまでやったところで行ける!とsshコマンドを打ちました
$ ssh instance
秘密鍵のパスフレーズを求められてパス入力。
しかし、
_人人人人人人人人人人人人人人人人人人_
> Permission denied (publickey) <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
なぜ!?(この後かなりハマる……)
原因
踏み台サーバーからVPC内インスタンスに接続するところで、秘密鍵を解決できていないのが原因でした。
$ ssh-add 秘密鍵のパス
を実行後に、再度sshコマンド打ったら繋がりました!
更に良い解決方法(mac限定)
秘密鍵のパスフレーズをキーチェーンに登録すれば、もう再起動してもパスフレーズ入力を求められることはない
$ ssh-add -K 秘密鍵のパス
同じ問題に悩まされた時に読んでいただけると嬉しいですmm