비밀번호없이 EC2 인스턴스에 대한 scp (보안 사본)


404

EC2 인스턴스가 실행 중이며 (FreeBSD 9 AMI ami-8cce3fe5) 암호 프롬프트없이 Amazon에서 생성 한 키 파일을 사용하여 문제없이 ssh를 사용할 수 있습니다.

그러나 scp를 사용하여 파일을 인스턴스에 복사하려면 비밀번호를 입력하라는 메시지가 표시됩니다.

scp somefile.txt -i mykey.pem root@my.ec2.id.amazonaws.com:/

Password:

왜 이런 일이 발생하는지 / 어떻게 방지 할 수 있습니까?


사용자와 호스트에 대해 완전히 동일한 식별자를 사용하고 있습니까?
Lynch

식별자의 의미가 무엇인지 잘 모르겠습니다. 설명해 주시겠습니까?
Hoff

한 연결의 경우 IP 주소를 사용하고 다른 연결의 경우 이름을 사용하면 작동하지 않습니다. 방금 당신이 당신 -i의 신분을 제공하기 위해 옵션을 사용하는 것을 보았습니다 . ssh로 로그인하는 데 사용하는 명령을 표시해야 할 수도 있습니다.
Lynch

고마워요, 알아 냈어요!
Hoff

답변:


804

나는 그것을 알아. 나는 잘못된 순서로 논쟁을했다. 이것은 작동합니다 :

scp -i mykey.pem somefile.txt root@my.ec2.id.amazonaws.com:/

14
ssh를 통해 ec2에 연결하는 방법을 이해하는 사람은 ssh명령을 변경 scp하고 pem 파일 뒤에 이름 파일을 추가하십시오.
Claudio Santos

11
이 답변이 조금 오래 때문에, 나의 새로운 EC2 인스턴스에서 최근의 예 : SCP -i kp1.pem ./file.txt ec2-user@1.2.3.4 : / 홈 / EC2 사용자
siliconrockstar

1
@siliconrockstar 귀하의 진술 ec2-user@1.2.3.4:/home/ec2-user은 더 쉽고 짧은 ec2-user@1.2.3.4:./ ./FTW 로 쉽게 대체됩니다 !
브록

2
매우 늦은 의견이지만 비표준 포트를 사용하는 경우 @ClaudioSantos가 제안한 내용이 정확하게 작동하지 않습니다. ssh의 경우 -p이고 scp의 경우 -P입니다.
Inukshuk

1
* .PEM 파일을 사용하여 ec2로 ssh 할 수 있습니다. 그러나 파일을 SCP에 사용하려고하면 "Permission Denied"오류가 발생합니다. 이 문제를 어떻게 해결할 수 있습니까?
AleX_

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

(-r) 매개 변수는 필요하지 않지만 원격 경로 끝에서 (/)를 제거해야합니다. 귀하의 예는 감사에게, 나를 위해 많은 일
압바스

35

아래 명령을 사용하여 로컬 Linux Centos 7에서 AWS EC2로 복사했습니다.

scp -i user_key.pem file.txt ec2-user@my.ec2.id.amazonaws.com:/home/ec2-user


19
scp -i ~/.ssh/key.pem ec2-user@ip:/home/ec2-user/file-to-copy.txt .

파일 이름이 pem 파일과 ec2-user 문자열 사이에 있으면 안됩니다. 또한 복사 한 파일의 이름을 예약 할 수 있습니다.


14

로컬 서버에서 원격 서버로 파일 복사

sudo scp -i my-pem-file.pem ./source/test.txt ec2-user@1.2.3.4:~/destination/

원격 서버에서 로컬 시스템으로 파일 복사

sudo scp -i my-pem-file.pem ec2-user@1.2.3.4:~/source/of/remote/test.txt ./where/to/put

따라서 기본 구문은 다음과 같습니다.

scp -i my-pem-file.pem username@source:/location/to/file username@destination:/where/to/put

-i입니다 identity_file


8

보내려는 pem 파일과 somefile.txt가 Downloads 폴더에 있다고 가정합니다.

scp -i ~/Downloads/mykey.pem ~/Downloads/somefile.txt root@my.ec2.id.amazonaws.com:~/

작동하지 않는 경우 알려주십시오


scp -i /Users/Username/Downloads/myfile.pem -r ubuntu@my.ect.id.amazonaws.com : ~ / ~ / Desktop / 서버에서 로컬로 파일을 전송하려는 경우
Yatender Singh

2
감사 :/합니다. 마지막에 "액세스 거부"를 받았지만 :~/작동합니다.
cardamom

예 : : /는 루트 폴더이고 : ~ /는 사용자 폴더이므로 루트 사용자 인 경우 : / 또는 : ~ / 모든 것이 작동하며 루트 사용자가 아닌 경우 : ~ / 만 사용해야합니다.
Yatender Singh

3

scp -i /home/barkat/Downloads/LamppServer.pem lampp_x64_12.04.tar.gz

이것은 여러분 모두에게 매우 도움이 될 것입니다


2

hadoopec2cluster.pem파일은 로컬 Mac의 디렉토리에있는 유일한 파일이므로을 사용하여 aws로 scp 할 수 없었습니다 scp -i hadoopec2cluster.pem hadoopec2cluster.pem ubuntu@serverip:~.

hadoopec2cluster.pem을 hadoopec2cluster_2.pem에 복사 한 다음 scp -i hadoopec2cluster.pem hadoopec2cluster_2.pem ubuntu@serverip:~. 짜잔!


2

공개 키 파일을 지정했기 때문에 이것에 매달 렸습니다.

scp -i [private key file path]

그 실수를 잡아서 대신 개인 키 경로로 변경했을 때, 나는 모두 설정되었습니다.


2

귀하의 경우, 사용자 root는 아무런 문제가 없습니다. 그러나 SSH를 사용하여 다른 사용자로 로그인해야하는 경우 SSH를 scp사용하는 사용자에게 적절한 디렉토리 권한 이 있는지 확인하십시오 .


1

PSCP를 사용하려면 PuTTYgen을 사용하여 개인 키 변환에서 생성 한 개인 키가 필요합니다. Linux 인스턴스의 퍼블릭 DNS 주소도 필요합니다

pscp -i C:\path\my-key-pair.ppk C:\path\Sample_file.txt ec2-user@public_dns:/home/ec2-user/Sample_file.txt

0

이 코드를 작성

scp -r -o "ForwardAgent=yes" /Users/pengge/11.vim root@192.168.2.228:/root/

대상 서버에 액세스 할 수있는 SSH 키가 있고 소스 서버에 액세스 할 수없는 경우 -o "ForwardAgent = yes"를 추가하면 SSH 에이전트를 소스 서버로 전달하여 SSH 키를 사용하여 연결할 수 있습니다. 대상 서버


-6

방금 테스트 :

다음 명령을 실행하십시오.

sudo shred -u /etc/ssh/*_key /etc/ssh/*_key.pub

그때:

  1. ami (ec2의 이미지)를 만듭니다.
  2. 2 단계의 새 ami (image)에서 시작하여 새 키를 선택했습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.