![SSH로 연결할 수 있는 EC2 인스턴스에 scp 파일을 보낼 수 없습니다.](https://rvso.com/image/1346172/SSH%EB%A1%9C%20%EC%97%B0%EA%B2%B0%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%8A%94%20EC2%20%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EC%97%90%20scp%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EB%B3%B4%EB%82%BC%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
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
수신측에서는 다음 명령을 실행하여 파일을 다운로드합니다.