Ssh

從公共 EC2 到 RDS 的 SSH 轉發不起作用

  • June 12, 2019

所以我對 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 並查找錯誤“名稱或服務未知”。這就是發生在我身上的事情。

現在可以了。

引用自:https://serverfault.com/questions/971167