SSH로 연결할 수 있는 EC2 인스턴스에 scp 파일을 보낼 수 없습니다.

SSH로 연결할 수 있는 EC2 인스턴스에 scp 파일을 보낼 수 없습니다.

Amazon Linux AMI에서 생성된 동일한 AMI에서 생성된 두 개의 EC2 인스턴스가 있습니다. 이들은 마스터-슬레이브 구성으로 mysql을 실행하고 있습니다. 보안 그룹("db")은 보안 그룹 "web"에서 실행되는 인스턴스에서 포트 22를 허용하도록 구성됩니다.

따라서 웹 인스턴스 중 하나에 ssh를 연결한 다음 데이터베이스 인스턴스에 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

관련 정보