Làm thế nào để SSH đến EC2 mà không sử dụng khóa pem một cách rõ ràng?


21

Tôi có một cửa sổ là hệ điều hành chính của tôi. Sử dụng trình phát VMware, tôi thiết lập máy chủ Ubuntu 12.4 làm máy khách. Máy chủ Ubuntu có người dùng "ubfox".

Tôi đã tạo một ví dụ EC2 mới + khóa pem thiết lập. Từ máy windows, khi tôi sử dụng phím putty + pem - tôi có thể ssh.

Tôi đã thêm khóa pem vào máy chủ VMware Ubuntu của mình (/home/ubfox/.ssh/) Ngoài ra, tôi đặt các quyền sau: chmod 700 /home/ubuntu/.ssh chmod 600 /home/ubuntu/.ssh/*

Thông qua máy chủ Ubuntu - Tôi đã cố gắng SSH đến phiên bản ec2 nhưng không thành công : ssh ubuntu@EC2_IP Permission denied (publickey) . Nếu tôi rõ ràng sử dụng khóa pem, nó sẽ hoạt động: ssh -i /home/ubuntu/.ssh/NAME.pem ubuntu@EC2_IP - Xin lưu ý rằng tôi phải sử dụng đường dẫn trực tiếp đến khóa, nếu không, tôi sẽ nhận được Warning: Identity file NAME.pem not accessible: No such file or directory. Permission denied (publickey).

Xin tư vấn. Cảm ơn!

Câu trả lời:


18

Theo mặc định, SSH client sẽ tìm kiếm các phím được đặt tên id_rsa, id_dsaid_ecdsatrong ~/.ssh/. Nếu khóa của bạn không được đặt tên như vậy, bạn cần chỉ định nó trên dòng lệnh -inhư bạn đã làm hoặc chỉ định nó trong cấu hình máy khách.

Bạn có thể thêm một cái gì đó như thế này ~/.ssh/configđể tự động chọn khóa này khi SSH vào EC2:

Host *.compute-1.amazonaws.com
    IdentityFile ~/.ssh/ec2_rsa


2

Làm thế nào để bạn đặt tên khóa riêng của bạn? Nó phải có tên tệp id_rsa mặc định (đổi tên tệp pem thành /home/ubfox/.ssh/id_rsa)


nó được gọi là eldad.pem (tên mặc định từ AWS). Tôi đã đổi tên nó thành id_rsa và nó đã hoạt động. Có cách nào để giữ nó trong tên hiện tại và vẫn sử dụng nó?
dùng798562

Đúng, Daniel đã viết về nó trong câu trả lời của mình :)
Andrei Mikhaltsov 15/03/13

1

Bạn có thể sử dụng ssh-agentssh-addđể tránh phải chỉ định khóa riêng một cách rõ ràng.

Bạn có thể đặt các lệnh trong .profilehoặc .bashrcđể chúng được thực thi mỗi khi bạn đăng nhập. Bạn có thể tìm thấy một kịch bản khởi động ví dụ ở cuối bài này .


Tôi đã làm điều đó, nhưng khi tôi khởi động lại - tôi cần phải làm lại từ đầu. Có cách nào để tránh điều đó không?
dùng798562

Chỉnh sửa câu trả lời của tôi để bao gồm điều đó.
David Levesque

0

Máy khách ssh tìm kiếm identify filedựa trên cấu hình được đặt trong /etc/ssh/ssh_config. Vì vậy, bạn có thể chỉ định tệp nhận dạng ở đó và nhớ rằng bạn có thể có nhiều tệp nhận dạng được liệt kê trong tệp cấu hình máy khách ssh. Từ trang ssh man -

    -i identity_file
         Selects a file from which the identity (private key) for public key authentication is read.  The default is ~/.ssh/identity
         for protocol version 1, and ~/.ssh/id_dsa, ~/.ssh/id_ecdsa and ~/.ssh/id_rsa for protocol version 2.  Identity files may also
         be specified on a per-host basis in the configuration file.  It is possible to have multiple -i options (and multiple identiâ
         ties specified in configuration files).

Ví dụ, đối với khóa RSA, vị trí mặc định là ~ / .ssh / id_rsa. Như Andrei Mikhaltsov đã đề xuất, bạn có thể đặt khóa riêng của mình vào / home / ubfox / ssh / id_rsa và sẽ có thể kết nối mà không cần chỉ định nó trong dòng lệnh. Nếu tên tệp đó đã tồn tại và giữ một khóa riêng khác, bạn vẫn có thể tùy chỉnh tệp cấu hình máy khách ssh của mình tại IdentityFiletham số.

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.