Làm cách nào để thiết lập quyền truy cập SSH cho phiên bản Amazon EC2?


87

Tôi cần quyền truy cập SSH vào phiên bản Amazon EC2 chạy Ubuntu 10.4. Tất cả những gì tôi có là tên người dùng và mật khẩu Amazon. Có ý kiến ​​gì không?


2
Đừng quên chạy chmod 400 my_private_key.pem.txt sau khi bạn tải xuống.
Peter Kaminski

Câu trả lời:


159

Về cơ bản, bạn cần một tệp khóa riêng để đăng nhập vào EC2 của mình thông qua SSH. Làm theo các bước sau để tạo một:

  • Truy cập https://console.aws.amazon.com/ec2/home và đăng nhập vào tài khoản Amazon hiện có của bạn.
  • Nhấp vào "Key Pairs" trên LHS hoặc https://console.aws.amazon.com/ec2/home?region=us-east-1#s=KeyPairs .
    • Bạn sẽ thấy danh sách các KEY do bạn tạo (hoặc trong quá trình tạo EC2).
    • Nhấp vào "Tạo cặp khóa" nếu bạn không thấy bất kỳ khóa nào hoặc bạn bị mất khóa cá nhân của mình.
    • Nhập một tên duy nhất và nhấn enter.
    • Một bảng tải xuống sẽ xuất hiện để bạn lưu private-key, hãy lưu nó.
    • Giữ nó ở đâu đó với quyền đối với tệp "0600"
  • Nhấp vào "Phiên bản" trên LHS hoặc https://console.aws.amazon.com/ec2/home?region=us-east-1#s=Instances
    • Bạn sẽ thấy danh sách các phiên bản ec2, nếu bạn không thấy bất kỳ phiên bản nào, hãy tạo một phiên bản.
    • Nhấp vào máy EC2 và ghi lại địa chỉ DNS Công cộng.
  • Mở Terminal của bạn (trong Linux) và nhập lệnh sau
    • ssh -i /path/to/private-key root@<ec2-public-dns-address>- tên người dùng gốc đã được tránh trong các bản phát hành mới nhất, dựa trên lựa chọn phân phối của bạn ec2-userhoặc ubuntulàm tên người dùng của bạn.
    • Nhấn Enter
    • Đó là nó.

6
Bạn có thể không thể đăng nhập với quyền root trực tiếp qua ssh. Bạn sẽ phải sử dụng một tổ chức phi gốc chiếm như EC2 người dùng nên 'ssh -i / path / to / private-key EC2-user @ hostname
timbo

4
Khi tôi cố gắng kết nối, nó nói với tôi rằng tôi nên sử dụng ubuntuđăng nhập thay vì root. Rõ ràng tôi đã có phiên bản máy chủ ubuntu 12.04.
Vasiliy Stavenko

3
Mình đã tạo thành công tài khoản SSH, tiếp theo là cách upload các file bằng SCP với tài khoản đã tạo ??? Khi tôi cố gắng tải lên bằng SCP, nó cho biết "Quyền bị từ chối (khóa công khai)."
Ashok KS

5
vẫn nhận được massage này "Quyền bị từ chối (khóa công khai)." Tại sao vậy?
Kasun Kariyawasam

2
Tất cả các bạn nhận được "Quyền bị từ chối (khóa công khai)." có thể đang sử dụng Elastic Beanstalk. Nếu vậy, bạn cần vào EB env Config, Security và chọn cặp khóa mới. Các phiên bản EC2 mới sẽ được tạo chấp nhận khóa. Và tên người dùng là ec2-userhoặc có thể ubuntu, nhưng không root.
Jorge Orpinel

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

chỉ sử dụng ubuntuthay vì root. Vấn đề của bạn sẽ được giải quyết. Chúc mừng!


12

BƯỚC 1) Tải xuống các khóa cá nhân được gán cho máy ec2 của bạn (chỉ tải xuống một lần khi được tạo. Vì vậy, bạn nên cam kết ở đâu đó)

BƯỚC 2) và kích hoạt các lệnh sau,

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

Tài liệu chính thức : Kết nối với Phiên bản Linux / Unix của bạn bằng SSH


7

Lưu ý, người dùng hiện tại cho 13.04 là "ubuntu" ssh -i ./mykey.pem ubuntu@ec2-xxx-xxx-xxx-1.compute-1.amazonaws.com


4

Trước tiên, bạn cần tạo một cặp khóa - thực hiện việc đó bằng bảng điều khiển EC2 của bạn. Sau đó, sử dụng khóa riêng của bạn để SSH vào máy chủ (tên người dùng là ec2-user) bằng ứng dụng khách SSH mà bạn chọn.

Sau khi truy cập, bạn có thể cấp sudo su -quyền truy cập root nếu muốn (lưu ý: bạn không thể đăng nhập trực tiếp với quyền root).


4

Nếu bạn đang sử dụng MacOS, bạn nên tạo / chỉnh sửa tệp cấu hình SSH (~ / .ssh / config) và đặt một cái gì đó như:

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

Sau đó, để kết nối với bất kỳ phiên bản EC2 nào:

ssh MYNAME.amazonaws.com

Chỉ có bấy nhiêu thôi!


những gì nếu tôi có chìa khóa đa-pal cho khu vực khác nhau như chúng ta đông-1.pem và chúng tôi-tây-2.pem
Haseeb

1

Để thiết lập Ubuntu trên AWS, hãy làm theo các bước sau:

  1. Đăng nhập vào Amazon Web Services và chọn EC2 .
  2. Chọn Khởi chạy Phiên bản và làm theo trình hướng dẫn bằng cách chọn hình ảnh phù hợp (Ubuntu), loại phiên bản, cấu hình mạng VPC và Mạng con, lưu trữ và cho phép truy cập SSH trong Nhóm bảo mật . Sau đó Khởi chạy .
  3. Lần đầu tiên, bạn có thể cần thiết lập cặp khóa và gán nó cho phiên bản. Bạn cũng có thể tạo cặp khóa trong Key Pairs . Sau khi tạo, hãy tải xuống tệp PEM và giữ nó ở nơi an toàn.
  4. Sau khi phiên bản được khởi chạy, hãy đợi cho đến khi phiên bản được Khởi tạochạy .

Để truy cập phiên bản qua SSH, hãy chạy:

  1. Kết nối với hộp Linux bằng cách chỉ định tệp PEM của bạn, ví dụ:

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

    Đảm bảo rằng tệp PEM của bạn có 600 quyền ( chmod 600 file.pem).

Xử lý sự cố

Nếu bạn đang chạy phiên bản VPC và nhóm bảo mật của bạn đúng (với các quy tắc phù hợp) và nó vẫn không hoạt động, trong phần VPC , hãy kiểm tra mạng con của bạn sẽ được gắn vào VPC của bạn (cả phiên bản của bạn đều được sử dụng ) và thiết lập quy tắc mới trong Route Table0.0.0.0/0như Destination và bạn Internet gateway như Target .

Để biết thêm chi tiết, hãy kiểm tra: Khắc phục sự cố khi kết nối với phiên bản của bạn

Xem thêm: Các lý do có thể gây ra thời gian chờ khi cố gắng truy cập phiên bản EC2


1

1) Đầu tiên chmod.pem fileđể hạn chế các quyền đối với tệp như bên dưới

chmod 400 my-key-pair.pem

2) Sau đó sshvới các lệnh sau trực tiếp từ .sshthư mục

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

Lưu ý: - Để điều hướng vào .sshthư mục. Đầu tiên nhấn Ctrl + Hđể hiển thị tất cả các tệp ẩn và cuối cùngcd .ssh


0

Không đăng nhập với tư cách người dùng phù hợp với bạn OS Distro có thể là vấn đề. Đối với một số AMI mới nhất định, tên người dùng có thể không phải là "ubuntu", mà là "ec2-user". Ví dụ: đối với Amazon Linux, tôi tin rằng người dùng là "ec2-user". Eric Hammond đưa ra các ví dụ tại đây: http://alestic.com/2014/01/ec2-ssh-username

Đề xuất của tôi, hãy thử:

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...

Nếu bạn có AMI sai, bạn có thể chỉ muốn khởi động lại máy hoàn toàn để bạn có sự đồng nhất giữa các cụm của mình. Nếu đây là vấn đề của bạn, có lẽ bạn sẽ muốn cùng một Distro hệ điều hành ít nhất cho các hộp linux của mình.


0

Làm những gì được đề xuất trong tất cả các câu trả lời này là không đủ. Đối với mỗi trường hợp bạn thấy một nhóm bảo mật. Khi bạn khởi chạy một phiên bản mới, bạn sẽ đặt thứ này thành mặc định. Bạn cần chỉnh sửa nhóm bảo mật và thêm cổng ssh. Sau đó, bạn cũng cần thêm các cổng 8080, 8443, 80, 443 khi bạn muốn lưu trữ trang web của mình.


0

Tôi đã chấp nhận đề nghị AWS sử dụng các nhóm bảo mật mặc định bao gồm các cổng 'Tất cả Trafic'.

Và, sau rất nhiều lần cố gắng kết nối trên phiên bản ec2 mới của mình, tôi chỉ nhận ra rằng tôi nên chỉnh sửa nhóm bảo mật đã sử dụng của mình và thêm theo cách thủ công vào cổng vào và ra cổng 22 (ssh)!

Hy vọng nó giúp !


0

Quyền thay đổi đầu tiên của tệp pem bằng

chmod 400 path/to/key_pair.pem

Bên trong tệp ~ / .ssh / config, thêm các dòng sau, ở đầu tệp

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

Tên máy chủ lấy IP hoặc liên kết của máy chủ, Người dùng lấy tên người dùng của máy chủ và Tệp danh tính là tệp được tải xuống từ AWS khi bạn tạo phiên bản. Chỉ cần chạy lệnh sau trong thiết bị đầu cuối

ssh AWS

và tận hưởng nó!

Lưu ý : Để điều hướng vào .sshthư mục. Đầu tiên nhấn Ctrl + Htrong thư mục chính để hiển thị tất cả các tệp ẩn và cuối cùngcd .ssh


0

Đảm bảo rằng những điều này được kiểm tra

  1. khóa cá nhân phải có 400 quyền

  2. Đảm bảo rằng cổng 22 được mở cho phiên bản AWS mà bạn đang cố gắng truy cập.

  3. ssh -i privatekey.pem ubuntu@XXX.XXX.XXX.XXX // XXX.XXX.XXX.XXX = ip công khai phiên bản của bạn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.