無法將 scp 檔案傳送到我可以 ssh 存取的 EC2 實例

無法將 scp 檔案傳送到我可以 ssh 存取的 EC2 實例

我有兩個從同一 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

  • 在接收端,執行以下命令下載文件

    $ wget http://ec2ip.aws.amaxon.com/file.txt

相關內容