Amazon EC2 인스턴스에 대한 SSH 액세스를 설정하려면 어떻게해야합니까?


87

Ubuntu 10.4를 실행하는 Amazon EC2 인스턴스에 대한 SSH 액세스가 필요합니다. 내가 가진 것은 Amazon 사용자 이름과 암호뿐입니다. 어떤 아이디어?


2
다운로드 후 chmod 400 my_private_key.pem.txt를 실행하는 것을 잊지 마십시오.
Peter Kaminski

답변:


159

기본적으로 SSH를 통해 EC2에 로그인하려면 프라이빗 키 파일이 필요합니다. 다음 단계에 따라 생성하십시오.

  • https://console.aws.amazon.com/ec2/home으로 이동하고 기존 Amazon 계정에 로그인합니다.
  • LHS 또는 https://console.aws.amazon.com/ec2/home?region=us-east-1#s=KeyPairs 에서 "키 페어"를 클릭합니다 .
    • 사용자가 (또는 EC2 생성 프로세스 중에) 생성 한 KEY 목록이 표시되어야합니다.
    • 아무것도 보이지 않거나 개인 키를 잃어버린 경우 "키 쌍 만들기"를 클릭하십시오.
    • 고유 한 이름을 입력하고 Enter 키를 누르십시오.
    • 개인 키를 저장하고 저장할 수있는 다운로드 패널이 나타납니다.
    • 파일 권한 "0600"으로 어딘가에 보관하십시오.
  • LHS 또는 https://console.aws.amazon.com/ec2/home?region=us-east-1#s=Instances 에서 "인스턴스"를 클릭합니다.
    • ec2-instances 목록이 표시되어야합니다. 표시되지 않으면 새로 만드십시오.
    • EC2 머신을 클릭하고 퍼블릭 DNS 주소를 기록해 둡니다.
  • 터미널 (Linux)을 열고 다음 명령을 입력하십시오.
    • ssh -i /path/to/private-key root@<ec2-public-dns-address>-배포 선택 ec2-user또는 ubuntu사용자 이름 에 따라 최신 릴리스에서 루트 사용자 이름이 사용되지 않았습니다 .
    • Enter를 누르십시오
    • 그게 다야.

6
ssh를 통해 직접 루트로 로그인 할 수 없습니다. ec2-user 와 같은 비 루트 계정을 사용해야합니다. 따라서 'ssh -i / path / to / private-key ec2-user @ hostname
timbo

4
연결을 시도한 후에는 ubuntu대신 로그인을 사용해야한다고 말했습니다 root. 분명히 우분투 서버 12.04 인스턴스가 있습니다.
Vasiliy Stavenko 2012

3
SSH 계정을 성공적으로 생성했습니다. 다음은 생성 된 계정으로 SCP를 사용하여 파일을 업로드하는 방법입니다 ??? SCP를 사용하여 업로드하려고하면 "Permission denied (publickey)"라고 표시됩니다.
Ashok KS

5
여전히 "Permission denied (publickey)"라는 마사지를받습니다. 왜 그런 겁니까?
Kasun Kariyawasam 2015

2
"Permission denied (publickey)"가 표시됩니다. Elastic Beanstalk를 사용 중일 수 있습니다. 그렇다면 EB env Config, Security로 이동하여 새 키 페어를 선택해야합니다. 키를 수락하는 새 EC2 인스턴스가 생성됩니다. 그리고 사용자 이름은 ec2-user또는 가능 ubuntu하지만 그렇지 않습니다 root.
Jorge Orpinel 2018 년

25
ssh -i /path/to/private-key ubuntu@<ec2-public-dns-address>

ubuntu대신 사용하십시오 root. 문제가 해결 될 것입니다. 건배!


12

1 단계) ec2 머신에 할당 된 개인 키를 다운로드합니다 (생성시 한 번만 다운로드하므로 어딘가에 커밋하는 것이 좋습니다).

2 단계) 다음 명령을 실행합니다.

chmod 400 MyKeyPair.pem
ssh -i MyKeyPair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com

공식 문서 : SSH를 사용하여 Linux / Unix 인스턴스에 연결


7

13.04의 현재 사용자는 "ubuntu"ssh -i ./mykey.pem ubuntu@ec2-xxx-xxx-xxx-1.compute-1.amazonaws.com입니다.


4

먼저 키 페어를 생성해야합니다. EC2 콘솔을 사용하여 생성하십시오. 그런 다음 개인 키를 ec2-user사용하여 선택한 SSH 클라이언트를 사용하여 서버 (사용자 이름은 )에 SSH로 연결합니다.

일단 sudo su -로그인하면 원하는 경우 루트를 얻기 위해 a 를 발행 할 수 있습니다 (참고 : 루트로 직접 로그인 할 수 없음).


4

MacOS를 사용하는 경우 SSH 구성 파일 (~ / .ssh / config)을 생성 / 편집하고 다음과 같이 입력해야합니다.

Host *.amazonaws.com
    User ubuntu
    Port 22
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null
    IdentityFile ~/PATH/YOUR_DOWNLOADED_KEY.pem

그런 다음 EC2 인스턴스에 연결하려면 :

ssh MYNAME.amazonaws.com

더 이상은 없습니다!


내가 뭘처럼 다른 지역 멀티 친구 키가있을 경우 우리 - 동 - 1.pem 우리는-서쪽 2.pem
Haseeb

1

AWS에서 Ubuntu를 설정하려면 다음 단계를 따르십시오.

  1. Amazon Web Services 에 로그인 하고 EC2를 선택 합니다.
  2. 선택 실행 인스턴스를 하고, 오른쪽 이미지 (우분투), 인스턴스 유형을 선택 VPC 네트워크와 서브넷, 스토리지를 구성하고있는 SSH 액세스를 허용하여 마법사에 따라 보안 그룹을 . 그럼 시작합니다 .
  3. 처음으로 키 페어를 설정하고 인스턴스에 할당해야 할 수 있습니다. 키 쌍에서 키 쌍을 생성 할 수도 있습니다 . 생성 된 PEM 파일을 다운로드하여 안전한 장소에 보관하십시오.
  4. 인스턴스가 시작되면 인스턴스가 Initialized and running 상태 가 될 때까지 기다립니다 .

SSH를 통해 인스턴스에 액세스하려면 다음을 실행하세요.

  1. PEM 파일을 지정하여 Linux 상자에 연결합니다.

    ssh -i "file.pem" ubuntu@x.x.x.x
    

    PEM 파일에 600 권한 ( chmod 600 file.pem) 이 있는지 확인하십시오 .

문제 해결

당신은 VPC 인스턴스를 실행하고 보안 그룹 (오른쪽 규칙) 정확하고 여전히에서하지 작업 않는 경우 VPC의 섹션은 서브넷 확인 당신에 연결해야 VPC (모두 사용 인스턴스에 의해) 및 설정 대상으로 , 인터넷 게이트웨이대상 으로 하는 라우팅 테이블의 새 규칙 .0.0.0.0/0

자세한 내용은 인스턴스 연결 문제 해결을 확인하십시오.

참고 항목 : EC2 인스턴스에 액세스하려고 할 때 시간 초과의 가능한 이유


1

1) 먼저 chmod다음 .pem file과 같이 파일 권한을 제한하는 방법

chmod 400 my-key-pair.pem

2) 그런 ssh다음 .ssh폴더 에서 직접 다음 명령을 사용하십시오.

ssh -i my-key-pair.pem ec2-user@ec2-198-99-90-3.compute-1.amazonaws.com

참고 : - .ssh폴더 로 이동 합니다. 먼저 Ctrl + H모든 숨겨진 파일을 표시하고 마지막으로cd .ssh


0

OS Distro의 올바른 사용자로 로그인하지 않으면 문제가 될 수 있습니다. 특정 새 AMI의 경우 사용자 이름은 "ubuntu"가 아니라 "ec2-user"일 수 있습니다. 예를 들어 Amazon Linux의 경우 사용자가 "ec2-user"라고 생각합니다. Eric Hammond는 http://alestic.com/2014/01/ec2-ssh-username에서 예를 제공합니다.

내 제안은 다음과 같습니다.

ssh -i /path/to/file.pem ec2-user@ec2...

ssh -i /path/to/file.pem ubuntu@ec2...

ssh -i /path/to/file.pem root@ec2...

잘못된 AMI가있는 경우 클러스터간에 균일 성을 갖도록 머신을 모두 다시 시작하는 것이 좋습니다. 이것이 당신의 문제라면, 당신은 아마도 적어도 당신의 리눅스 박스에 대해 동일한 OS Distro를 원할 것입니다.


0

이 모든 답변에서 제안 된 것을하는 것만으로는 충분하지 않습니다. 각 인스턴스에 대해 보안 그룹이 표시됩니다. 새 인스턴스를 시작하면이 항목이 기본값으로 설정됩니다. 보안 그룹을 편집하고 ssh 포트를 추가해야합니다. 나중에 웹 사이트를 호스팅하려는 경우에도 8080, 8443, 80, 443 포트를 추가해야합니다.


0

'All Trafic'포트가 포함 된 기본 보안 그룹을 사용하겠다는 AWS 제안을 수락했습니다.

그리고 새 ec2 인스턴스에서 여러 번 연결을 시도한 후 사용 된 보안 그룹을 편집하고 22 포트 (ssh)를 인바운드 및 아웃 바운드에 수동으로 추가해야한다는 것을 깨달았습니다!

도움이 되길 바랍니다!


0

먼저 pem 파일의 권한 변경

chmod 400 path/to/key_pair.pem

~ / .ssh / config 파일 내에서 파일 상단에 다음 줄을 추가합니다.

Host AWS
     Hostname myserver.com
     User myuser
     IdentityFile path/to/.pem/file
     port 22

호스트 이름은 서버의 IP 또는 링크를, 사용자는 서버의 사용자 이름을 취하고 ID 파일은 인스턴스 생성시 AWS에서 다운로드 한 파일입니다. 터미널에서 다음 명령을 실행하십시오.

ssh AWS

그리고 그것을 즐기십시오!

참고 : .ssh폴더 로 이동 합니다. 먼저 Ctrl + H홈 폴더를 눌러 모든 숨겨진 파일을 표시하고 마지막으로cd .ssh


0

이것들을 확인하십시오

  1. 개인 키에는 400 권한이 있어야합니다.

  2. 액세스하려는 AWS 인스턴스에 대해 포트 22가 열려 있는지 확인합니다.

  3. ssh -i privatekey.pem ubuntu@XXX.XXX.XXX.XXX // XXX.XXX.XXX.XXX = 인스턴스 공용 IP
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.