사용자가 자신의 홈 디렉터리에 있는 파일에 대해 scp 명령을 실행하면 scp 권한이 거부됩니다.

사용자가 자신의 홈 디렉터리에 있는 파일에 대해 scp 명령을 실행하면 scp 권한이 거부됩니다.

사용 중 "권한 거부" 오류에 대한 많은 게시물을 확인했지만 scp내 질문에 대한 답변을 찾을 수 없습니다.

AWS의 동일한 네트워크에 두 개의 우분투 서버가 있습니다(서버 "A"와 "B"라고 가정). 파일을 다른 서버에 복사하려고 하면 A에서 B로 작동하지 않지만 B에서 A로 효과가 있습니다. (아래 참조)

서버 "A"에서,

ubuntu@server-a ~ $ ls -alt server*
-rwxr-xr-x 1 ubuntu ubuntu 8152 Aug  9 14:26 server.xml.bak

ubuntu@server-a ~ $ scp -P 443 server.xml.bak [email protected]:/home/ubuntu/
Permission denied (publickey).
lost connection

ubuntu@server-a ~ $ scp -P 443 /home/ubuntu/server.xml.bak [email protected]:/home/ubuntu/
Permission denied (publickey).
lost connection

여기에 원격 파일 복사도 시도했지만 실패했습니다.

ubuntu@server-a ~ $ scp -P 443 [email protected]:/home/ubuntu/sakila.sql .
Permission denied (publickey).

하지만 서버 "B"에서는 모든 것이 정상입니다.

ubuntu@server-b ~ $ scp -P 443 [email protected]:/home/ubuntu/server.xml.bak .
server.xml.bak                                                    100% 8152     8.0KB/s   00:00

ubuntu@server-b ~ $ scp -P 443 sakila.sql [email protected]:/home/ubuntu/
sakila.sql                                                        100% 3153KB   3.1MB/s   00:00

보시다시피, 이는 권한 문제가 아닙니다. 모든 작업은 "ubuntu" 홈 디렉터리의 "ubuntu"에 의해 수행되며 파일도 755 모드에서 "ubuntu"에 의해 소유됩니다.

그래서 지금은 무엇이 잘못되었는지 혼란스러워요.

답변1

제안한 대로 원래 의견을 답변으로 옮기고 비슷한 문제가 발생할 경우를 대비해 더 자세한 내용을 제공합니다.

@lgeorget의 의견에서 팁을 얻었습니다. 명령을 실행 scp -v하고 개인 키가 누락되었기 때문이라는 것을 알았습니다.

보안상의 이유로 서버의 개인 키를 모두 삭제하고 개인 키 관리를 위해 Pageant를 사용했습니다. 이 시나리오에서는 PuTTY를 사용하여 B(B는 배스천 서버)에 연결하고, 다른 PuTTY 터미널을 열고, B에 다시 연결한 다음 SSH를 통해 A에 연결합니다. 따라서 미인 대회는 B의 개인 키를 처리할 수 있지만 A의 개인 키는 직접 처리할 수 없습니다. (이것을 식별할 수 없습니다.)
결과적으로 B에서 대상 서버 A로의 scp 명령은 작동하지만 A에서 대상 서버 B로의 scp 명령은 작동하지 않습니다. 시작하다.

테스트를 위해 개인 키를 A에 업로드했는데 A의 scp 명령도 제대로 작동합니다.

개인키를 서버에 보관할 수 없기 때문에 그냥 서버 B에서 scp 명령어를 사용해야 할 것 같습니다.

관련 정보