Thay đổi cặp khóa cho ví dụ ec2


408

Làm cách nào để thay đổi cặp khóa cho phiên bản ec2 của tôi trong bảng điều khiển quản lý AWS? Tôi có thể dừng cá thể, tôi có thể tạo cặp khóa mới, nhưng tôi không thấy bất kỳ liên kết nào để sửa đổi cặp khóa của cá thể.


1
Tôi đã làm theo các bước được chỉ ra trong video này và nó đã hoạt động trên youtube.com/watch?v=OF2AOekW4IE
Jonathan Nolasco Barrientos

Câu trả lời:


492

Câu trả lời này rất hữu ích trong trường hợp bạn không còn quyền truy cập SSH vào máy chủ hiện tại (tức là bạn đã mất khóa riêng của mình).

Nếu bạn vẫn có quyền truy cập SSH, vui lòng sử dụng một trong các câu trả lời dưới đây.

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replaces-lost-key- Pair

Đây là những gì tôi đã làm, nhờ vào bài đăng trên blog của Eric Hammond:

  1. Dừng phiên bản EC2 đang chạy
  2. Tháo /dev/xvda1âm lượng của nó (hãy gọi nó là âm lượng A) - xem tại đây
  3. Bắt đầu phiên bản t1.micro EC2 mới, sử dụng cặp khóa mới của tôi. Hãy chắc chắn rằng bạn tạo nó trong cùng một mạng con , nếu không bạn sẽ phải chấm dứt thể hiện và tạo lại nó. - xem tại đây
  4. Đính kèm tập A vào ví dụ vi mô mới, như /dev/xvdf(hoặc /dev/sdf)
  5. SSH đến phiên bản vi mô mới và gắn kết khối lượng A đến /mnt/tmp

    $ sudo gắn kết / dev / xvdf1 / mnt / tmp

  6. Sao chép ~/.ssh/authorized_keysvào/mnt/tmp/home/ubuntu/.ssh/authorized_keys

  7. Đăng xuất
  8. Chấm dứt vi mô
  9. Tách khối lượng A khỏi nó
  10. Đính kèm tập A trở lại ví dụ chính như /dev/xvda
  11. Bắt đầu ví dụ chính
  12. Đăng nhập như trước, sử dụng .pemtệp mới của bạn

Đó là nó.


6
chỉ cần lưu mông của tôi, bạn là một huyền thoại!
Garry Hàn

8
mkdir /mnt/tmpvà sau đó mount /dev/xvdf /mnt/tmpnên thực hiện thủ thuật cho # 5. Và đừng quên bước 13. có lẽ là rm ~/.ssh/known_hoststrên các hộp bạn đã kết nối từ đó.
brandonscript

21
Điều này thật nặng nề. Trước hết, hãy xem câu trả lời của Eric Hammond bên dưới. Thứ hai: câu trả lời của Pat Mcb. Họ thực hiện điều tương tự nhưng không lãng phí 1h thời gian của bạn để làm việc giải quyết vui nhộn. Tái bút Xem thêm stackoverflow.com/a/24143976/547223
kgadek

3
Tôi đã viết các hướng dẫn thực sự cụ thể ở đây dựa trên câu trả lời này nhưng về cơ bản là cùng một ý tưởng - gist.github.com/tamidel/1b7ec4d3871b343d353d . Như @kgadek đã lưu ý, nó hơi bẩn và tốn thời gian nhưng đó là một lựa chọn tuyệt vời nếu bạn bị khóa khỏi máy chủ mà bạn muốn thực hiện thay đổi khóa và nếu bạn không muốn sao chép máy chủ đó. Mất khoảng 5-10 phút mỗi lần, không phải một giờ.
Tony

4
Câu trả lời được đăng bởi @Eric và @Pat là giải pháp cho những người chỉ muốn sử dụng một cặp khóa khác cho trường hợp của họ. Điều này không giúp người dùng bằng cách nào đó đã mất tệp cặp khóa ở vị trí đầu tiên. Không tách rời âm lượng và gắn nó vào một thể hiện khác, làm thế nào bạn có thể kiểm soát âm lượng đó? Hãy để một mình thay thế các .ssh/authorized_keystập tin ban đầu .
sanjeev

187

Khi một cá thể đã được bắt đầu, không có cách nào để thay đổi cặp khóa liên quan đến cá thể ở mức dữ liệu meta, nhưng bạn có thể thay đổi khóa ssh nào bạn sử dụng để kết nối với thể hiện.

Có một quá trình khởi động trên hầu hết các AMI tải xuống khóa ssh công khai và cài đặt nó trong tệp .ssh / ủy quyền để bạn có thể ssh trong khi người dùng đó sử dụng khóa ssh riêng tương ứng.

Nếu bạn muốn thay đổi khóa ssh nào bạn sử dụng để truy cập một thể hiện, bạn sẽ muốn chỉnh sửa tệp ủy quyền trên chính cá thể đó và chuyển đổi sang khóa chung ssh mới của bạn.

Tệp ủy quyền_key nằm dưới thư mục con .ssh trong thư mục chính của người dùng mà bạn đang đăng nhập. Tùy thuộc vào AMI bạn đang chạy, nó có thể nằm trong một trong:

/home/ec2-user/.ssh/authorized_keys
/home/ubuntu/.ssh/authorized_keys
/root/.ssh/authorized_keys

Sau khi chỉnh sửa tệp ủy quyền, luôn sử dụng một thiết bị đầu cuối khác để xác nhận rằng bạn có thể ssh vào ví dụ trước khi bạn ngắt kết nối với phiên bạn đang sử dụng để chỉnh sửa tệp. Bạn không muốn phạm sai lầm và tự khóa mình hoàn toàn.

Trong khi bạn đang suy nghĩ về các khóa bàn phím ssh trên EC2, tôi khuyên bạn nên tải khóa công khai ssh cá nhân của riêng bạn lên EC2 thay vì Amazon tạo ra cặp khóa cho bạn.

Đây là một bài báo tôi đã viết về điều này:

Tải khóa ssh cá nhân lên Amazon EC2
http://alatural.com/2010/10/ec2-ssh-keys

Điều này sẽ chỉ áp dụng cho các trường hợp mới mà bạn chạy.


Tôi ngu ngốc đã làm sai, tôi có nghĩa là tôi đã chỉnh sửa tệp ủy quyền và đăng xuất. Bây giờ, không thể quay lại :(. Có đề xuất sửa chữa nhanh nào không?
aatifh

11
aatifh: Đây là một bài viết tôi đã viết về cách thoát khỏi tình huống đó: alatural.com/2011/02/ec2-fix-ebs-root
Eric Hammond

@EricHammond Điều này có thể không đúng nhưng bạn dường như biết tất cả mọi thứ hoạt động như thế nào ... Tôi đã thiết lập một phiên bản EC2 hôm nay và nhận được .pemtệp khóa riêng trên máy Mac của tôi, tuy nhiên ssh -i key.pemkhông xác thực (quyền bị từ chối (khóa công khai)). Trong Bảng điều khiển quản lý EC2 dưới Tên cặp khóa, nó không liệt kê gì cả. Điều này là đáng báo động với tôi. Làm thế nào tôi có thể thiết lập điều này? Nó xuất hiện dựa trên Bảng điều khiển quản lý rằng không có bàn phím nào tôi đã cấu hình được gán cho thể hiện!
Steven Lu

1
@StevenLu: Yep, chủ đề bình luận là nơi sai để đặt câu hỏi mới. Hãy thử tạo một câu hỏi mới trên serverfault.com (thích hợp cho vấn đề đó hơn stackoverflow).
Eric Hammond

4
Đây là một lớp lót nhỏ xinh để thêm chìa khóa của bạn. Điều này chỉ cần thêm khóa pub bình thường của bạn cùng với khóa AWS được tạo, vì vậy nếu nó không hoạt động, bạn sẽ không tự khóa: stackoverflow.com/a/5654728/193494
Kevin C.

78

Chạy lệnh này sau khi bạn tải xuống pem AWS của bạn.

ssh-keygen -f YOURKEY.pem -y

Sau đó đổ đầu ra vào authorized_keys.

Hoặc sao chép tệp pem vào ví dụ AWS của bạn và thực hiện các lệnh sau

chmod 600 YOURKEY.pem

và sau đó

ssh-keygen -f YOURKEY.pem -y >> ~/.ssh/authorized_keys

14
Điều này chỉ hoạt động nếu bạn đã có quyền truy cập vào hệ thống, phải không? (như không bị mất tệp .pem cũ).
Daniel

5
Bạn có thể sử dụng> thay vì >> để ghi đè người dùng hiện tại thay vì thêm nó.
Adrian Lopez

Đây là câu trả lời đúng và đơn giản nhất. Không cần phải khởi động lại, tạo phiên bản mới hoặc gắn ổ đĩa. Chỉ cần lấy .pem, keygen nó và thêm nó vào Author_hosts.
Climby

tôi đã thực hiện điều này ssh-keygen -f YOUKEY.pem -y >> ~ / .ssh / ủy quyền
manukyanv07

Tôi đã chạy nó và khóa địa phương của tôi đã không thay đổi.
Luiz

50

Hướng dẫn từ bộ phận hỗ trợ AWS EC2:

  1. Thay đổi đăng nhập pem
  2. đi tới Bảng điều khiển EC2 của bạn
  3. Trong NETWORK & AN NINH, nhấp vào Cặp khóa Nhấp vào Tạo cặp khóa
  4. Đặt tên cho khóa mới của bạn, lưu tệp .pem. Tên của cặp khóa sẽ được sử dụng để kết nối với thể hiện của bạn
  5. Tạo kết nối SSH đến cá thể của bạn và giữ cho nó mở
  6. trong PuttyGen, nhấp vào "Tải" để tải tệp .pem của bạn
  7. Giữ nút radio SSH-2 RSA được chọn. Nhấp vào "Lưu khóa riêng" Bạn sẽ nhận được cảnh báo cửa sổ bật lên, nhấp vào "Có
  8. nhấp vào "Lưu khóa công khai", vì vậy để tạo khóa chung. Đây là khóa công khai mà chúng tôi sẽ sao chép qua ví dụ hiện tại của bạn
  9. Lưu khóa chung với tên cặp khóa mới và với phần mở rộng .pub
  10. Mở nội dung khóa công khai trong notepad
  11. sao chép nội dung bên dưới "Nhận xét:" đã nhập-openssh-key "và trước" ---- END SSH2 PUBLIC KEY ----
    Lưu ý - bạn cần sao chép nội dung dưới dạng một dòng - xóa tất cả các dòng mới
  12. trong trường hợp được kết nối của bạn, hãy mở tệp ủy quyền của bạn bằng cách sử dụng công cụ vi. Chạy lệnh sau: vi .ssh / ủy quyền_key bạn cũng sẽ thấy khóa công khai gốc trong tệp
  13. di chuyển con trỏ trên tệp đến cuối nội dung khóa công khai đầu tiên của bạn: nhập "i" để chèn
  14. trên dòng mới, nhập "ssh-rsa" và thêm khoảng trắng trước khi bạn dán nội dung của khóa chung, dấu cách và tên của tệp .pem (không có .pem) Lưu ý - bạn sẽ nhận được một dòng với cùng định dạng với dòng trước
  15. nhấn phím Esc và sau đó gõ: wq!

điều này sẽ lưu tệp ủy quyền được cập nhật

bây giờ hãy thử mở một phiên SSH mới cho cá thể của bạn bằng pai khóa mới của bạn

Khi bạn đã xác nhận rằng bạn có thể SSH vào ví dụ bằng cặp khóa mới, bạn có thể vi .ssh / ủy quyền_key và xóa khóa cũ.

Trả lời nhận xét của Shaggie:

Nếu bạn không thể kết nối với phiên bản (ví dụ: khóa bị hỏng), hãy sử dụng bảng điều khiển AWS để tách âm lượng ( http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html ) và gắn lại nó vào thể hiện hoạt động, hơn là thay đổi phím trên ổ đĩa và gắn lại nó vào thể hiện trước đó.


6
Nên là câu trả lời tốt nhất

2
Điều gì sẽ xảy ra nếu khóa cũ bị hỏng và bạn không thể kết nối với cá thể qua putty vì bạn không có tệp ppk cũ ???
Shaggie 18/03/2017

3
Điều gì xảy ra nếu bạn không có quyền truy cập SSH, do đó vấn đề này.
Jayden Lawson

3
Jayden Lawson, nếu bạn không có kết nối internet thì sao?
Elia Weiss

1
Có thể xảy ra việc cặp khóa được chia sẻ với người khác và bây giờ cần thay đổi cặp khóa để người đó không thể đăng nhập nữa, Hoặc nhiều lý do khác như thế này,
Harikrishna

38

Tôi nhận thấy rằng khi được quản lý bởi Elastic Beanstalk, bạn có thể thay đổi cặp khóa EC2 đang hoạt động của mình. Trong Bean Beanalk> Cấu hình> Bảo mật, chọn khóa mới từ trình đơn thả xuống của cặp khóa EC2 . Bạn sẽ thấy thông báo này hỏi bạn có chắc không:

EC2KeyName: Thay đổi tùy chọn Cài đặt EC2KeyName sẽ không có hiệu lực ngay lập tức. Mỗi phiên bản EC2 hiện tại của bạn sẽ được thay thế và cài đặt mới của bạn sẽ có hiệu lực sau đó.

Ví dụ của tôi đã bị chấm dứt khi tôi làm điều này. Sau đó nó bắt đầu, chấm dứt và bắt đầu lại. Rõ ràng "thay thế" có nghĩa là chấm dứt và tạo một trường hợp mới. Nếu bạn đã sửa đổi khối lượng khởi động của mình, trước tiên hãy tạo AMI, sau đó chỉ định AMI đó trong cùng dạng Bean Beanalk> Cấu hình> Thể hiện dưới dạng ID AMI tùy chỉnh . Điều này cũng cảnh báo về việc thay thế các phiên bản EC2.

Sau khi bạn đã sửa đổi cặp khóa EC2 và ID AMI tùy chỉnh của mình và sau khi thấy cảnh báo về cả hai, hãy nhấp vào Lưu để tiếp tục.

Hãy nhớ rằng địa chỉ IP thay đổi khi thể hiện được tạo lại, do đó bạn sẽ cần truy xuất địa chỉ IP mới từ bảng điều khiển EC2 để sử dụng khi kết nối qua SSH.


1
Điều này hiện nằm trong phần 'Bảo mật' của cấu hình.
Will Demaine

Cảm ơn @WillDemaine. Hiện tại không sử dụng AWS nên tôi sẽ chú ý và chỉnh sửa!
Mark Berry

31

Tôi đã trải qua cách tiếp cận này, và sau một thời gian, đã có thể làm cho nó hoạt động. Việc thiếu các lệnh thực tế làm cho nó khó khăn, nhưng tôi đã tìm ra nó. TUY NHIÊN - cách tiếp cận dễ dàng hơn nhiều đã được tìm thấy và thử nghiệm ngay sau đó:

  1. Lưu ví dụ của bạn dưới dạng AMI (khởi động lại hoặc không, tôi đề nghị khởi động lại). Điều này sẽ chỉ hoạt động nếu EBS được hỗ trợ.
  2. Sau đó, chỉ cần bắt đầu một thể hiện từ AMI này và gán Keyfile mới của bạn.
  3. Di chuyển qua IP đàn hồi của bạn (nếu có) sang trường hợp mới của bạn và bạn đã hoàn thành.

Điều này hoàn toàn hiệu quả với tôi sau khi tôi vô tình xóa ~ / .ssh
morri

Tôi đã làm như vậy và nó hoạt động, bây giờ tôi có thể đăng nhập với pem mới. Nhưng tôi vẫn có thể đăng nhập với pem cũ. Vì vậy, bây giờ 2 pems là hợp lệ.
Vitaly

FYI đây là một phương pháp GUI dễ dàng nhanh chóng để tạo ra một EC2 mới với khóa khác nếu bận nhưng vì @vitaly thấy bạn có khóa pem cũ cũng hợp lệ, cần phải truy cập /home/ec2-user/.ssh/authorized_keys và xóa khóa pem cũ từ tập tin. Cảm ơn phương pháp thay đổi phím Pem nhanh chóng và dễ dàng khi không có thời gian.
Tháp Blu

Điều này đã không làm việc cho tôi. AWS tiếp tục nói rằng mật khẩu không có sẵn với một thông báo khác đề cập rằng nếu thể hiện được tạo từ AMI thì nó sử dụng thông tin đăng nhập của hình ảnh gốc.
Brady

15

Nếu các bước dưới đây được thực hiện, nó sẽ tiết kiệm rất nhiều thời gian và sẽ không cần phải dừng phiên bản đang chạy.

  1. Bắt đầu phiên bản t1.micro EC2 mới, sử dụng cặp khóa mới. Hãy chắc chắn rằng bạn tạo nó trong cùng một mạng con , nếu không bạn sẽ phải chấm dứt thể hiện và tạo lại nó.
  2. SSH sang phiên bản vi mô mới và sao chép nội dung của ~ / .ssh / ủy quyền_key ở đâu đó trên máy tính của bạn.
  3. Đăng nhập vào ví dụ chính với khóa ssh cũ .
  4. Sao chép và thay thế nội dung tệp từ điểm 2 đến ~ / .ssh / ủy quyền
  5. Bây giờ bạn có thể đăng nhập lại chỉ với khóa mới. Chìa khóa cũ sẽ không hoạt động nữa.

Thế là xong. Thưởng thức :)


14

Tôi tin rằng cách đơn giản nhất là:

  1. Tạo hình ảnh AMI của cá thể hiện có.
  2. Khởi chạy phiên bản EC2 mới bằng hình ảnh AMI (được sắp xếp theo bước 1) với cặp khóa mới.
  3. Đăng nhập vào ví dụ EC2 mới với khóa mới.

@Brady, cái gì không hoạt động? chụp nhanh? khởi động ví dụ? đăng nhập?
Serge

4
Tôi không chắc liệu thay đổi này có phải là thay đổi gần đây hay không, nhưng khi bạn tạo AMI từ một phiên bản đã có khóa được gán, bạn cần phải có khóa đó để đăng nhập vào hình ảnh AMI được sao chép, bất kể có hay không bạn chỉ định một cặp khóa khác trong khi tạo.
Brady

Đây không phải là một giải pháp, vì @Brady đề cập rằng nó không hoạt động.
Greg Sansom

8

Trong trường hợp bạn đang sử dụng nền tảng ElasticBeanstalk, bạn có thể thay đổi các phím bằng cách đi:

  • Bảng điều khiển Beanstalk đàn hồi
  • Cấu hình
  • Trường hợp (cog trên cùng bên phải)
  • Cặp khóa EC2

Điều này sẽ chấm dứt cá thể hiện tại và tạo một cái mới với các khóa / cài đặt đã chọn.


2
Đây là câu trả lời đơn giản nhất ở đây, với điều kiện bạn đang ở trên ElasticBeanstalk.
Yuval Karmi

2
Cảnh báo ! Đây là một giải pháp nguy hiểm. AWS cũng sẽ thiết lập lại bộ lưu trữ (tức là Virtual HDD) được đính kèm với thể hiện đó (!!). Vì vậy, bạn phải tháo bộ lưu trữ và sau khi nâng cấp một thể hiện mới, hãy gắn lại nó một lần nữa thay vì bộ lưu trữ mới đi kèm với phiên bản mới. Tất nhiên, tốt nhất là nó không phải là một khối được mã hóa (và bạn đã không bị mất khóa ..)
JamesC

7

Có hai kịch bản được hỏi trong câu hỏi này: -

1) Bạn không có quyền truy cập vào tệp .pem đó là lý do tại sao bạn muốn tạo một tệp mới.

2) Bạn có. truy cập tệp pem với bạn nhưng bạn chỉ muốn thay đổi hoặc tạo tệp .pem mới cho một số mục đích bảo mật hoặc lỗ hổng .

Vì vậy, nếu bạn bị mất chìa khóa, bạn có thể cuộn lên và xem các câu trả lời khác . Nhưng nếu bạn chỉ cần thay đổi tệp .pem của mình cho mục đích bảo mật, hãy làm theo các bước: -

1) Chuyển đến đăng nhập bảng điều khiển AWS và tạo tệp .pem mới từ phần cặp khóa ở đằng kia. Nó sẽ tự động tải tập tin .pem vào máy tính của bạn

2) thay đổi quyền thành 400 nếu bạn đang sử dụng Linux / ubfox, hãy nhấn lệnh bên dưới

chmod 400 yournewfile.pem

3) Tạo RSA của tệp mới tải xuống trong máy cục bộ của bạn

ssh-keygen -f yournewfile.pem -y

4) Sao chép mã RSA từ đây

5) Bây giờ SSH đến phiên bản của bạn thông qua tệp .pem trước đó

ssh -i oldpemfileName.pem username@ipaddress

sudo vim  ~/.ssh/authorized_keys

6) Cung cấp không gian một hai dòng và dán RSA đã sao chép của tệp mới vào đây và sau đó lưu tệp

7) Bây giờ tệp .pem mới của bạn được liên kết với phiên bản đang chạy

8) Nếu bạn muốn tắt quyền truy cập tệp .pem trước đó, chỉ cần chỉnh sửa

sudo vim ~/.ssh/authorized_keys

nộp và xóa hoặc thay đổi RSA trước đó từ đây.

Lưu ý: - Xóa cẩn thận để RSA mới tạo không bị thay đổi.

Theo cách này, bạn có thể thay đổi / kết nối tệp .pem mới với phiên bản đang chạy của bạn.

Bạn có thể thu hồi quyền truy cập vào tệp .pem được tạo trước đó do mục đích bảo mật.

Hy vọng nó sẽ giúp!


2
Tôi thích giải pháp này vì nó không yêu cầu tôi tạo phiên bản mới với hình ảnh AMI bị đóng băng. Nhưng phương pháp này có thể thay đổi tên khóa liên quan của thể hiện EC2 trong bảng điều khiển EC2 không? @Parveen yadav
nghiện

6

Giải pháp đơn giản nhất là sao chép nội dung của

~/.ssh/id_rsa.pub

vào ủy quyền AWS của bạn tại

~/.ssh/authorized_keys

Điều này sẽ cho phép bạn ssh vào phiên bản EC2 mà không chỉ định tệp pem cho lệnh ssh. Bạn có thể xóa tất cả các khóa khác sau khi bạn đã kiểm tra kết nối với nó.

Nếu bạn cần tạo một khóa mới để chia sẻ nó với người khác, bạn có thể làm điều đó với:

ssh-keygen -t rsa

sẽ tạo tệp private.p.pem và bạn có thể lấy khóa chung đó bằng:

ssh-keygen -f private_key.pem -y > public_key.pub

Bất cứ ai có private_key.pem đều có thể kết nối với

ssh user@host.com -i private_key.pem

4
Làm cách nào tôi có thể truy cập ~/.ssh/authorized_keyskhi tôi thậm chí không thể ví dụ SSH aws?
nguyện

3
Tôi tin rằng dòng cuối cùng của bạn không chính xác, bạn sẽ chỉ có thể kết nối nếu bạn có khóa riêng .. ssh -i private_key.pem user@host.com. Nếu bạn muốn ai đó cấp cho bạn quyền truy cập vào cá thể của họ, bạn có thể chia sẻ khóa công khai của mình với họ một cách an toàn và họ có thể thêm nó vào ủy quyền của họ để cấp cho bạn quyền truy cập vào ví dụ như người dùng đó ...
code4

5

Bạn không cần phải xoay thiết bị gốc và thay đổi Khóa công khai SSH authorized_keys. Vì điều đó có thể sử dụng userdata để thêm khóa ssh cho bạn vào bất kỳ trường hợp nào. Vì vậy, trước tiên bạn cần tạo KeyPair mới bằng bảng điều khiển AWS hoặc thông qua ssh-keygen.

ssh-keygen -f YOURKEY.pem -y

Điều này sẽ tạo khóa chung cho SSH KeyPair mới của bạn, sao chép khóa chung này và sử dụng nó trong tập lệnh bên dưới.

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [scripts-user, always]

--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"

#!/bin/bash
/bin/echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6xigPPA/BAjDPJFflqNuJt5QY5IBeBwkVoow/uBJ8Rorke/GT4KMHJ3Ap2HjsvjYrkQaKANFDfqrizCmb5PfAovUjojvU1M8jYcjkwPG6hIcAXrD5yXdNcZkE7hGK4qf2BRY57E3s25Ay3zKjvdMaTplbJ4yfM0UAccmhKw/SmH0osFhkvQp/wVDzo0PyLErnuLQ5UoMAIYI6TUpOjmTOX9OI/k/zUHOKjHNJ1cFBdpnLTLdsUbvIJbmJ6oxjSrOSTuc5mk7M8HHOJQ9JITGb5LvJgJ9Bcd8gayTXo58BukbkwAX7WsqCmac4OXMNoMOpZ1Cj6BVOOjhluOgYZbLr" >> /home/hardeep/.ssh/authorized_keys
--//

Sau khi khởi động lại, máy sẽ có khóa publch SSH được chỉ định. Xóa userdata sau lần khởi động lại đầu tiên. Đọc thêm về userdata khi khởi động .


4
  • Tạo khóa mới, ví dụ như sử dụng Trình tạo khóa PuTTY
  • Dừng trường hợp
  • Đặt dữ liệu người dùng cá thể để đẩy khóa chung tới máy chủ
  • Ví dụ bắt đầu

Cảnh báo: Đừng quên xóa dữ liệu người dùng một lần nữa. Nếu không, phím này sẽ được đẩy vào mỗi lần khởi động. Hướng dẫn từng bước .

#cloud-config
bootcmd:
 - echo 'ssh-rsa AAAAB3Nz...' > /root/.ssh/authorized_keys

nhập mô tả hình ảnh ở đây


1
Đây là cách AWS chính thức để làm điều đó, vì vậy đạo cụ cho @reto. aws.amazon.com/premiumsupport/knowledge-center/...
Bevan

3

Tôi đã thử các bước dưới đây và nó hoạt động mà không dừng lại. Yêu cầu của tôi là - vì tôi đã thay đổi máy khách của mình, tệp .pem cũ không cho phép tôi đăng nhập vào thể hiện ec2.

  1. Đăng nhập vào thể hiện ec2 bằng tệp .pem cũ của bạn từ máy cũ. Mở ~ / .ssh / ủy quyền

Bạn sẽ thấy các khóa cũ của bạn trong tập tin đó.

  1. ssh-keygen -f YOU_PEM_FILE.pem -y Nó sẽ tạo một khóa. Nối khóa vào ~ / .ssh / ủy quyền được mở ở bước # 1. Không cần xóa khóa cũ.

  2. Từ bảng điều khiển AWS, tạo một cặp khóa mới. Lưu trữ nó trong máy mới của bạn. Đổi tên nó thành tệp pem cũ - lý do là tệp pem cũ vẫn được liên kết với phiên bản ec2 trong AWS.

Tất cả đã được làm xong.

Tôi có thể đăng nhập vào AWS ec2 từ máy khách mới của mình.


3

Bạn có một số tùy chọn để thay thế khóa của thể hiện EC2 của bạn.

  1. Bạn có thể thay thế khóa theo cách thủ công trong tệp .ssh / ủy quyền. Tuy nhiên, điều này đòi hỏi bạn phải có quyền truy cập vào thể hiện hoặc âm lượng nếu điều này không được mã hóa.
  2. Bạn có thể sử dụng Trình quản lý hệ thống AWS. Điều này đòi hỏi phải có một tác nhân được cài đặt.

Vì tùy chọn đầu tiên có thể dễ dàng tìm thấy trong các câu trả lời hoặc tại công cụ tìm kiếm bạn chọn, tôi muốn tập trung vào Trình quản lý hệ thống.

  1. Mở dịch vụ Systems Manager
  2. Bấm vào Automationbên trái.
  3. Bấm vào Execute Automation
  4. Chọn AWSSupport-TroubleshootSSH(thường là trên trang cuối cùng)

Bạn có thể tìm thêm thông tin về Tài liệu AWS chính thức


1

Câu trả lời của Yegor256 đã có hiệu quả với tôi, nhưng tôi nghĩ rằng tôi sẽ chỉ thêm một số ý kiến ​​để giúp đỡ những người không giỏi trong việc gắn ổ đĩa (như tôi!):

Amazon cung cấp cho bạn một sự lựa chọn về những gì bạn muốn đặt tên cho âm lượng khi bạn gắn nó. Bạn đã sử dụng một tên trong phạm vi từ / dev / sda - / dev / sdp Các phiên bản mới hơn của Ubuntu sau đó sẽ đổi tên những gì bạn đặt trong đó thành / dev / xvd (x) hoặc một cái gì đó để có hiệu lực.

Vì vậy, đối với tôi, tôi đã chọn / dev / sdp làm tên của tên mount trong AWS, sau đó tôi đăng nhập vào máy chủ và phát hiện ra rằng Ubuntu đã đổi tên âm lượng của tôi thành / dev / xvdp1). Sau đó tôi phải gắn ổ đĩa - đối với tôi, tôi phải làm như thế này:

mount -t ext4 xvdp1 /mnt/tmp

Sau khi vượt qua tất cả các vòng, tôi có thể truy cập các tệp của mình tại / mnt / tmp


như một bình luận, điều này nên được thêm vào như một bình luận, không phải là một câu trả lời.
JDL

0

Điều này sẽ chỉ hoạt động nếu bạn có quyền truy cập vào trường hợp bạn muốn thay đổi / thêm khóa vào. Bạn có thể tạo một cặp khóa mới. Hoặc nếu bạn đã có cặp khóa, thì bạn có thể dán khóa chung của cặp mới vào tệp ủy quyền trên ví dụ của bạn.

vim .ssh / ủy quyền

Bây giờ bạn có thể sử dụng khóa riêng cho cặp đó và đăng nhập.

Hi vọng điêu nay co ich.


0

Vấn đề của tôi là, tôi đã cố gắng với IPhơn là công khai DNS. Sau đó, tôi đã cố gắng public DNSvà giải quyết nó


0

nếu bạn không thể đăng nhập vào VM và xóa khóa ssh của mình và bạn cũng có thể thay đổi cặp khóa của ec2 bằng các bước dưới đây. Đi từng bước 1) dừng thể hiện ec2 của bạn. 2) chụp nhanh VM và lưu trữ. 3) tạo một VM mới trong khi tạo nó, chọn ảnh chụp nhanh của bạn và tạo VM từ Ảnh chụp nhanh của bạn. 4) trong khi việc tạo VM tải xuống khóa của bạn. 5) khi VM UP của bạn, bạn có thể ssh với một cặp khóa mới và dữ liệu của bạn cũng sẽ trở lại.


0

Bạn có thể làm gì...

  1. Tạo Hồ sơ / Vai trò sơ thẩm mới có chính sách AmazonEC2RoleForSSM được đính kèm.

  2. Đính kèm Hồ sơ cá nhân này vào ví dụ.

  3. Sử dụng Trình quản lý phiên SSM để đăng nhập vào thể hiện.
  4. Sử dụng keygen trên máy cục bộ của bạn để tạo một cặp khóa.
  5. Đẩy phần công khai của khóa đó lên phiên bản bằng cách sử dụng phiên SSM của bạn.
  6. Lợi nhuận.

0

Nhờ những lời khuyên guys. Chắc chắn sẽ giữ chúng trong tâm trí khi tôi cần nghỉ ngơi các cặp chìa khóa. Tuy nhiên, vì lợi ích của sự hiệu quả và sự lười biếng, tôi đã nghĩ ra một thứ khác:

  1. Tạo cặp khóa mới của bạn và tải thông tin đăng nhập
  2. Bấm chuột phải vào thể hiện của bạn> Tạo AMI Sau khi hoàn thành
  3. chấm dứt cá thể của bạn (hoặc chỉ dừng nó cho đến khi bạn chắc chắn rằng bạn có thể tạo một cái khác từ AMI sáng bóng mới của bạn)
  4. Bắt đầu một phiên bản EC2 mới từ AMI bạn vừa tạo và chỉ định cặp khóa mới của bạn được tạo ở bước (1) ở trên.

Hy vọng điều này có thể hữu ích cho bạn và giúp bạn tiết kiệm thời gian cũng như giảm thiểu lượng tóc trắng bạn có được từ những thứ như thế này :)

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.