前提
AWS クラウドでの Linux 踏み台ホスト
AWSは、よくある踏み台ホスト環境の CloudFormation テンプレートを用意しています。
AWS クラウドでの Linux 踏み台ホスト: クイックスタートリファレンスデプロイ
多段SSHでハマる
多段SSH 設定例
~/.ssh/config
Host bastion #踏み台
HostName xxx.xxx.xxx.xxx #グローバルIP
Port 22
User xxxxxx
IdentityFile ~/.ssh/id_rsa
Host target #各サーバ
HostName 10.0.0.1 #VPC内ローカルIP
User xxxxxx
IdentityFile ~/.ssh/id_rsa
ProxyCommand ssh -W %h:%p username@xxx.xxx.xxx.xxx
多段SSH 実行時のエラーメッセージ
$ ssh target
channel 0: open failed: administratively prohibited: open failed
stdio forwarding failed
ssh_exchange_identification: Connection closed by remote host
最初焦りましたが、理由は単純で AWS提供のbastionサーバのデフォルトがAllowTcpForwarding no でした。
設定を変更して
/etc/ssh/sshd_config
AllowTcpForwarding yes
sshを再起動しましょう
service sshd restart