![無法將 scp 檔案傳送到我可以 ssh 存取的 EC2 實例](https://rvso.com/image/1346172/%E7%84%A1%E6%B3%95%E5%B0%87%20scp%20%E6%AA%94%E6%A1%88%E5%82%B3%E9%80%81%E5%88%B0%E6%88%91%E5%8F%AF%E4%BB%A5%20ssh%20%E5%AD%98%E5%8F%96%E7%9A%84%20EC2%20%E5%AF%A6%E4%BE%8B.png)
我有兩個從同一 AMI 建立的 EC2 實例,該 AMI 是從 Amazon Linux AMI 建立的。它們以主從配置運行 mysql。安全性群組(“db”)配置為允許在安全性群組“web”下運行的實例的連接埠 22。
因此,我透過 ssh 存取 Web 實例之一,然後透過 ssh 或 scp 存取資料庫實例。這已經運作良好一段時間了。
然而,今天我無法再透過 scp 到其中一個實例(主實例)。我可以很好地通過 ssh 進入它,並且 scp 和 ssh 對於從屬實例都可以正常工作。
使用 -vv 運行 scp 會產生幾乎相同的輸出,直到下面的 debug2: 行,這是連接到主伺服器時的最後一個輸出。
debug2: exec request accepted on channel 0
Sending file modes: C0775 77 <filename>
知道發生了什麼事嗎?我嘗試過重新啟動實例,但沒有任何區別。
更新:
/var/log/secure:
Jan 10 19:02:59 <host> sshd[1987]: Accepted publickey for <user> from xx.xxx.xxx.xxx port 33285 ssh2
Jan 10 19:02:59 <host> sshd[1987]: pam_unix(sshd:session): session opened for user <user> by (uid=0)
/var/log/audit/audit.log 中增加了大約 20 行左右,全部以res=success
答案1
我透過執行以下操作解決了此問題:
$ sudo vi /etc/ssh/sshd_config
改變了這一點:
# override default of no subsystems
Subsystem sftp /usr/libexec/openssh/sftp-server
對此:
# override default of no subsystems
Subsystem sftp internal-sftp
然後重新啟動sshd服務:
$ sudo service sshd restart
答案2
我發現運行 python SimpleHTTPServer 並在另一端運行 wget 來下載檔案更容易。
新增要在所有來源的安全性配置中新增的 HTTP 協議
在檔案所在的目錄中執行以下命令
$ sudo python -m SimpleHTTPServer 80
在接收端,執行以下命令下載文件