新しいシステム用にいくつかのサーバーをセットアップしていて、少し違う方法で行うことにしました。しかし、私はただ乗り越えられないように見える問題に直面しています。私が望む構成は、要塞サーバーを1つと、要塞を介してのみアクセスできる他のN台のサーバーを使用することです。これは非常に一般的な構成です。
私が通常行うこととの違いは、認証に署名付きSSHキーを使用したいということです。これは単一のサーバーでは非常に簡単ですが、要塞を使用するとレンチを投げます。
現在、同じように構成された2つのサーバーがあります。署名されたSSHキーを使用して両方に直接アクセスできます。ただし、一方を要塞/ジャンプホストとして使用しようとすると、もう一方に接続できません。私の~/.ssh/config
は次のようになります:
Host ssh.uswe2
HostName ssh.uswe2.example.com
User ec2-user
IdentityFile ~/.ssh/ssh-rsa-cert
Host *.uswe2 !ssh.uswe2
HostName %h.example.com
User ec2-user
ProxyCommand ssh -W %h:%p ssh.uswe2.example.com
IdentityFile ~/.ssh/ssh-rsa-cert
この構成では、ssh ssh.uswe2
を使用して要塞にサインインできますが、ssh server2.uswe2
を使用して他のサーバーに接続しようとすると、次のエラーが発生します。
channel 0: open failed: administratively prohibited: open failed
stdio forwarding failed
kex_exchange_identification: Connection closed by remote Host
パブリックネットワーク経由でssh server2.uswe2.example.com
を使用してサーバーに直接接続することはできますが、CAと証明書が正しくロードされていることはわかっています。
次の考えは、要塞の構成に関係があるのではないかと思いましたが、両方のサーバーの~/.ssh/authorized_keys
に公開鍵を追加すれば、問題なく接続できます。
私はここで完全に途方に暮れていて、サーバーから自分自身を締め出し続けているのでトラブルシューティングするのは難しいです。私は誰かが次のことで私を助けてくれることを願っています:
channel 0: open failed: administratively prohibited: open failed
この問題は、サーバーのSSHゲートウェイサーバーでポート転送が無効になっている場合に発生します。あなたの場合、ssh.uswe2.example.comでは、AllowTcpForwardingの設定が「no」に設定されている可能性があります。それを「はい」に変更したいとします。また、GatewayPortsを許可する必要がある場合もあります。詳細については、ドキュメントを参照してください。 https://linux.die.net/man/5/sshd_config