AWS Ubuntu 서버에 SSH로 연결하여 디렉토리를 로컬 머신에 복사하려고했습니다. 프로세스 전체에서 다른 파일 권한 오류가 발생합니다 (아래 참고).
SSH 및 SCP를 허용하는 .pem 파일에 필요한 특정 파일 권한이 있습니까?
또는 로그인 후 SSH에 대해 한 번, SCP에 대해 다른 권한을 두 번 변경해야합니까?
내가 사용하는 명령은 다음과 같습니다.
SSH :
ssh -i sentiment.pem Todo@54.555.555.555
다음을 사용하여 원격에서 로컬 컴퓨터로 복사하십시오.
scp Todo@54.555.555.555:/home/ubuntu/sentimentfolder /Users/Toga/Desktop/sentimentlocal
Mac OS X 10.7.5를 사용하고 있습니다.
시행 착오:
1.) .pem 파일을 처음 다운로드 한 후 사용 권한이 다음과 같이 설정되었습니다 : 0644
-rw-r–r-@ 1 Toga 직원 1692 년 2 월 18 일 21:27 sentiment.pem
그런 다음 터미널을 통해 SSH를 시도하고 다음을 받았습니다.
WARNING: UNPROTECTED PRIVATE KEY FILE!
Permissions 0644 for 'sentiment.pem' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: sentiment.pem
Permission denied (publickey).
2.) 파일 권한을 chmod 660 sentiment.pem으로 업데이트했습니다.
업데이트 후 권한이 다음과 같이 설정되었습니다.
-rw-rw —- @ 1 Toga 직원 1692 년 2 월 18 일 21:27 sentiment.pem
그런 다음 터미널을 통해 SSH를 시도하고 다음을 받았습니다.
WARNING: UNPROTECTED PRIVATE KEY FILE!
Permissions 0660 for 'sentiment.pem' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: sentiment.pem
Permission denied (publickey).
3.) 파일 권한을 chmod 600 sentiment.pem으로 업데이트했습니다.
업데이트 후 권한이 다음과 같이 설정되었습니다.
-rw ——- @ 1 Toga 직원 1692 년 2 월 18 일 21:27 sentiment.pem
그런 다음 터미널을 통해 SSH를 시도했지만 성공했습니다!
4.) 이제 로그인하여 a 명령을 실행하여 다음을 사용하여 원격 디렉토리를 로컬 컴퓨터에 복사합니다.
scp Todo@54.555.555.555:/home/ubuntu/sentimentfolder /Users/Toga/Desktop/sentimentlocal
다음을 반환합니다 :
Permission denied (publickey).
시도한 SCP 명령 :
1.) -i 명령을 추가하고 .pem 파일을 참조했습니다.
scp -i sentiment.pem Todo@54.555.555.555 : / home / ubuntu / sentimentfolder / Users / Toga / Desktop / sentimentlocal
2.) -i 명령을 추가하고 .pem 파일을 참조한 다음 AWS 사용자를 ec2-user로 변경했습니다.
scp -i sentiment.pem ec2-user@54.555.555.555 : / home / ubuntu / sentimentfolder / Users / Toga / Desktop / sentimentlocal
3.) -i 명령을 추가하고 .pem 파일을 참조하고 AWS 사용자를 ec2-user로 변경 한 다음 .pem 파일 위치에 대한 전체 파일 경로를 추가했습니다.
scp -i /Users/Toga/Desktop/rollup/Personal/Serial_Project_Starter/sentiment/sentiment.pem ec2-user@54.555.555.555 : / home / ubuntu / sentiment / Users / Toga / Desktop / sentimentlocal
답변
여기 방문 원격 SSH를 사용하여 아마존 EC2에 연결하는 방법
또는 아래를 참조하십시오.
SSH를 사용하여 Amazon EC2에 원격으로 연결하는 방법 :
- .pem 파일을 다운로드하십시오.
- Amazon Dashboard의 왼쪽 표시 줄에서 “인스턴스”를 선택한 다음 연결하려는 인스턴스를 선택하십시오.
- “작업”을 클릭 한 다음 “연결”을 선택하십시오.
- “독립형 SSH 클라이언트와 연결”을 클릭하십시오
- 터미널 창을 엽니 다
-
디렉토리를 작성하십시오.
# mkdir -p ~/.ssh
-
다운로드 한 .pem 파일을 방금 만든 .ssh 디렉토리로 이동하십시오.
# mv ~/Downloads/ec2private.pem ~/.ssh
-
루트 사용자 만 읽을 수 있도록 .pem 파일의 권한을 변경하십시오.
# chmod 400 ~/.ssh/ec2private.pem
-
구성 파일을 작성하십시오.
# vim ~/.ssh/config
해당 구성 파일에 다음 텍스트를 입력하십시오.
Host *amazonaws.com IdentityFile ~/.ssh/ec2private.pem User ec2-user
해당 파일을 저장하십시오.
-
퍼블릭 DNS 호스트 이름과 함께 ssh 명령을 사용하여 인스턴스에 연결하십시오.
예 :# ssh ec2-54-23-23-23-34.example.amazonaws.com
답변
chmod 400 {keyfile}.pem
아마존이 지시하고 작동하는 것입니다.
답변
SCP 명령에서 IP 주소를 사용하지 말고 시스템의 전체 호스트 이름을 사용해야합니다. AWS 문서는 “SCP를 사용하여 Linux / Unix에서 Linux / Unix 인스턴스로 파일 전송”섹션의 http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html 에서 이를 설명합니다 .
-r
디렉토리를 복사 하는 데 사용 합니다.
기본 사용자 이름은 이미지마다 다릅니다.
Amazon Linux의 경우 기본 사용자 이름은
ec2-user
입니다. RHEL5의 경우 사용자 이름은 종종root
있지만 일 수 있습니다ec2-user
. Ubuntu의 경우 사용자 이름은ubuntu
입니다. SUSE Linux의 경우 사용자 이름은root
입니다. 그렇지 않으면 AMI 제공 업체에 확인하십시오.
따라서 다음 명령을 사용하십시오.
scp -r -i /Users/Toga/Desktop/rollup/Personal/Serial_Project_Starter/sentiment/sentiment.pem ubuntu@ec2-xx-xx-xx-xx.compute-x.amazonaws.com:~/sentiment /Users/Toga/Desktop/sentimentlocal
답변
“권한이 거부되었습니다 (공개 키)”는 원격 서버에서 온 것이므로 잘못된 키를 사용하고 있거나 연결이 허용되지 않았거나 remote certified_keys 파일에 오타가 있습니다.
답변
chmod 0400 pemfile.pem
과
ssh -i path_to_pem_file -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no ec2-machine name