无法将文件 scp 到我可以 ssh 连接的 EC2 实例

无法将文件 scp 到我可以 ssh 连接的 EC2 实例

我有两个 EC2 实例,它们是从同一个 AMI 创建的,而这个 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

相关内容