scp를 사용하여 파일을 Amazon EC2 인스턴스에 복사합니까?


200

Mac 터미널을 사용하여 다운로드 (온라인으로 다운로드 한 phpMyAdmin)에서 Amazon EC2 인스턴스로 파일을 scp하려고합니다.

내가 사용한 명령은 다음과 같습니다.

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz  hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

내가 얻은 오류 : 경고 : ID 파일 myAmazonKey.pem에 액세스 할 수 없음 : 해당 파일이나 디렉토리가 없습니다. 권한이 거부되었습니다 (공개 키). 연결이 끊어짐

myAmazonkey.pem과 phpMyAdmin-3.4.5-all-languages.tar.gz가 모두 다운로드에 있으므로 시도했습니다.

scp -i /Users/Hello_Kitty22/Downloads/myAmazonKey.pem /Users/Hello_Kitty22/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz  hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

그리고 내가 얻은 오류 : 경고 : 신원 파일 /User/Hello_Kitty22/Downloads/myAmazonkey.pem 액세스 할 수 없음 : 해당 파일이나 디렉토리가 없습니다. 권한이 거부되었습니다 (공개 키). 연결이 끊어짐

누구든지 내 문제를 해결하는 방법을 알려주십시오.

추신 : 비슷한 게시물이 있습니다 : 비밀번호없이 ec2 인스턴스에 scp (보안 사본) 이지만 내 질문에 대답하지 않습니다.


Amazon 인스턴스를 온라인으로 시작하면 더 이상 다운로드에서 로컬 파일에 액세스 할 수 없습니다.
HoKy22

답변:


378

ec2-user예를 들어 사용자를 다음 과 같이 지정하십시오.

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz ec2-user@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

SSH를 사용하여 Linux / UNIX 인스턴스에 연결을 참조하십시오 .


16
잘 작동합니다. 우분투 인스턴스를 실행하는 경우 사용자 기본 사용자는 "우분투"일 수 있습니다.
RussellStewart

물론 복사 / 작동하지 않을 수 있습니다. 깨달아 주셔서 감사합니다!
dnuske

@DanielDropik 농담인지 아닌지는 모르겠지만 :/폴더를 시스템의 루트에 복사하려고하면 sudo (또는 루트)를 실행하지 않고 모든 컴퓨터에서 권한 오류가 발생합니다.
Dobz

왜 "root"사용자가 아닌 "ubuntu"사용자로 로그인하십시오. 내가 복사를 위해해야 ​​할 일
Arjun

내 경우에는 사용자를 사용했지만 도메인 이름 대신 공개 dns mec2-50-17-16-67.compute-1.amazonaws.com을 추가하는 차이점
shareef

31

두 번째 디렉토리는 대상 위치이므로 서버 이름을 사용하지 마십시오. 즉, 현재있는 컴퓨터의 컴퓨터 이름을 언급 할 필요가 없습니다.

scp -i /path/to/your/.pemkey -r /copy/from/path user@server:/copy/to/path

디렉토리 인 경우 -r


19

SSH가 작동하려면 키를 공개적으로 볼 수 없어야합니다. 필요한 경우이 명령을 사용하십시오.

chmod 400 yourPublicKeyFile.pem

당신은 내 일 형제 저장
Mayukh 사카

13

위의 scp 명령을 시도하려면 로컬 시스템에 있어야합니다.

로컬 컴퓨터에서 다음을 시도하십시오.

scp -i ~/Downloads/myAmazonKey.pem ~/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz  hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

9

EC2 인스턴스에 적용되는 세부 사항은 다음과 같습니다 .

scp -i /path/to/whatever.pem /users/me/path-to-file ec2-user@ec2-55-55-555-555.compute-1.amazonaws.com:~

몇 가지 참고 사항 :

  1. 다음에 주어진 세 매개 변수 사이의 공백에 유의하십시오. -i
  2. scp보안 복사 프로토콜을 나타냅니다. 단어를 알면 명령을 더 쉽게 기억할 수 있습니다.
  3. -i.pem파일을 다음 매개 변수로 제공해야 함을 나타냅니다 . 더가있는 경우 -i, 당신은 필요 없어보다 .pem.
  4. :~EC2 인스턴스의 대상 끝 부분에 유의하십시오 .

7

나는 똑같은 문제를 겪었다.

scp -i /path/pem -r /path/file/ ec2-user@public aws dns name: (여기서 비워 두십시오)

이 부분을 완료하면 ssh 서버 및 mv 파일로 이동하여 원하는 위치로 이동하십시오.


5
scp -i ~/path to pem file/file.pem -r(for directory) /PATH OF LOCAL/localfile user@hostname:PATH OF SERVER/serverdirectory

3

아래 SCP 형식은 저에게 효과적입니다.

scp -i /path/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com:~/SampleFile.txt ~/SampleFile2.txt

SampleFile.txt : 루트 디렉토리 (내 경우에는 / home / ubuntu)의 경로가됩니다. 내 경우에는 다운로드하려는 파일이 / var / www에 있습니다.

SampleFile2.txt : 컴퓨터의 루트 경로 (내 경우에는 / home / MyPCUserName)가됩니다.

그래서 아래 명령을 작성해야합니다

scp -i /path/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com:~/../../var/www/Filename.zip ~/Downloads

2

로컬에서 서버로 파일 보내기 :

scp -i .ssh / awsinstance.pem my_local_file ubuntu@XX.XXX.XXX.XXX : / home / ubuntu

서버에서 로컬로 파일 다운로드 :

scp -i .ssh / awsinstance.pem ubuntu@XX.XXX.XXX.XXX : / home / ubuntu / server_file


1

AWS EC2 리눅스 인스턴스에 대한 로컬 시스템에서 파일을 복사 SCP를 사용하는 과정을 단계별로에 (포인트 후술 포함) 피복 동영상 .

SCP 사용과 관련된이 특정 문제를 해결하려면 :

  1. 올바른 Linux 사용자를 지정해야합니다. 에서 아마존 :

    • Amazon Linux의 경우 사용자 이름은 ec2-user입니다.
    • RHEL의 경우 사용자 이름은 ec2-user 또는 root입니다.
    • 우분투의 경우 사용자 이름은 우분투 또는 루트입니다.
    • Centos의 경우 사용자 이름은 centos입니다.
    • Fedora의 경우 사용자 이름은 ec2-user입니다.
    • SUSE의 경우 사용자 이름은 ec2-user 또는 root입니다.
    • 그렇지 않으면 ec2-user 및 root가 작동하지 않으면 AMI 공급자에게 문의하십시오.
  2. 개인 키는 공개적으로 보이지 않아야합니다. 루트 사용자 만 파일을 읽을 수 있도록 다음 명령을 실행하십시오.

    chmod 400 /path/to/yourKeyFile.pem
    

0

.pem 파일에 대한 권한을 확인하십시오 ... openssh는 일반적으로 세계가 읽을 수있는 개인 키를 좋아하지 않으며 실패합니다 (iir, scp는이 피드백을 사용자에게 제공하는 데 큰 도움이되지 않습니다).

해당 키를 사용하여 AWS 호스트에 간단히 ssh 할 수 있습니까?


예, 해당 키를 사용하여 AWS 호스트에 ssh 할 수 있습니다. 사실, 내가 겪고있는 문제는 ssh를 통해 Amazon 호스트에 있으므로 cd를 할 때 내 pem 파일을 저장 한 로컬 Mac Downloads 디렉토리가 아닌 Amazon 서버의 파일 만 볼 수 있다는 것입니다 . ec2 호스트를 종료 할 때 로컬 Mac 다운로드 디렉토리에만 CD를 넣을 수 있습니다. 그러나 ec2 호스트로 나가면 phpMyAdmin 파일을 ec2 서버에 업로드 할 수 없습니다. 내 pem의 허가는 400입니다. 괜찮습니다.
HoKy22

2
도움을 주셔서 대단히 감사합니다. 마지막 질문에서 문제가 발견되었습니다. 두 개가 아니라 ssh 나 scp 중 하나 인 것 같습니다.
HoKy22

힌트 hellokitty22에 감사드립니다. 나는 두 개의 터미널을 ssh와 scp를 위해 열었습니다.
donebizkit

0

먼저 .pem파일 모드를 읽기 및 쓰기 모드에서 읽기 전용 모드로 변경해야 합니다. 이것은 터미널에서 단일 명령으로 수행 할 수 있습니다sudo chmod 400 your_public_key.pem


0

위에서 언급 한 모든 제안을 시도했지만 아무것도 효과가 없었습니다. 현재 인스턴스를 종료하고 다른 인스턴스를 시작한 다음 동일한 정확한 프로세스를 반복했습니다. 이번에는 문제 없습니다. 때로는 원격 ami의 결함 일 수 있습니다.


0

이것은 단지 나를 위해 일했다. 이 질문에 다른 두 가지 답변을 조합하여 사용했습니다.

scp -i /Users/me/documents/myKP.pem -r /Users/me/desktop/testDir \
       ec2-user@ec2-11-111-11-11.compute-1.amazonaws.com:/home/ec2-user/remoteDir

"ec2-user@ec2-11-111-11-11.compute-1.amazonaws.com"은 ec2 인스턴스의 퍼블릭 DNS에서 복사하여 붙여 넣습니다.


-1

나는 사용할 것이다 :

scp -i "path to .pem file" "file to be copeide from local machine" username@amazoninstance: 'destination folder to copy file on remote machine'

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.