Ssh
從公共 EC2 到 RDS 的 SSH 轉發不起作用
所以我對 AWS 的網路方面比較陌生,並且遇到了問題。這是我所擁有的內容的簡短描述。
我有一個不可公開訪問的 RDS。端點解析為私有 10.XXX IP。我有一個位於同一 VPC/子網中且可公開訪問的 EC2 實例。我可以毫無問題地通過 SSH 連接到這個 EC2 實例。奇怪的是,我在該 EC2 實例上執行了一個程序,該程序能夠通過 JDBC 成功連接到 RDS。
但是,由於 RDS 實例不可公開訪問,我想使用 EC2 實例從我的開發 PC 訪問 RDS 實例。每次我這樣做時,我都會在我的電腦上收到“頻道 2:打開失敗:管理禁止:打開失敗”。
這是我的命令
ssh -i ~/key.pem -N -L 3307:rds-name-here.abcdefghi123.us-east-1.rds.amazonaws.com:3306 ec2-user@1.1.1.1
顯然我改變了細節,但這就是命令的要點。這是我得到的唯一錯誤,真的不知道該去哪裡找。
任何朝著正確方向的指示都會有所幫助。我現在不知所措。我確實確認了安全組允許所有相互之間的流量。我根本沒有修改網路 ACL。
編輯:我啟用了一些調試標誌( -vvv )並且它響應數據包類型 92?
debug2: fd 6 setting TCP_NODELAY debug2: fd 6 setting O_NONBLOCK debug3: fd 6 is O_NONBLOCK debug1: channel 2: new [direct-tcpip] debug3: send packet: type 90 debug3: receive packet: type 92 channel 2: open failed: administratively prohibited: open failed debug2: channel 2: zombie debug2: channel 2: garbage collecting
所以我找到了答案……顯然這是一個錯字。我發現另一個文章告訴我查看 /var/log/secure 並且那裡有關於無法找到端點的錯誤。我的問題是我使用了一個舊副本讀取節點的端點,我最初用來查看我的主節點中的數據,該節點已被刪除。我沒有意識到這一點,因為完整的主機名幾乎相同,並認為我已經複製/粘貼了它。
因此,對於正在調查潛在問題的其他人,請檢查 /var/log/secure,用 grep 查找 sshd 並查找錯誤“名稱或服務未知”。這就是發生在我身上的事情。
現在可以了。