Tôi cần chạy ssh-add <key>mọi lúc tôi cần ssh vào máy chủ web. Có cách nào để thêm ID vĩnh viễn, vì vậy tôi không phải tiếp tục thêm danh tính trên mỗi lần đăng nhập?
EDIT: Khóa là tệp pem mà tôi đã tải xuống từ dịch vụ đám mây.
Tôi cần chạy ssh-add <key>mọi lúc tôi cần ssh vào máy chủ web. Có cách nào để thêm ID vĩnh viễn, vì vậy tôi không phải tiếp tục thêm danh tính trên mỗi lần đăng nhập?
EDIT: Khóa là tệp pem mà tôi đã tải xuống từ dịch vụ đám mây.
Câu trả lời:
Tạo khóa của bạn như bình thường : ssh-keygen, sau đó đặt khóa đó vào máy chủ từ xa ssh-copy-id, sẽ đồng bộ hóa nó với các khóa được chấp nhận của máy chủ từ xa.
ssh-keygen
ssh-copy-id user@host
Nó sẽ nhắc mật khẩu của bạn sau đó thực hiện tất cả các bước cần thiết để liên kết .pubkhóa của bạn với máy chủ SSH từ xa.
Theo mặc định, nó sẽ sao chép tất cả các khóa .pub của bạn vào máy chủ từ xa. Nếu bạn chỉ tạo khóa của mình ssh-keygenthì đây không phải là vấn đề (vì bạn chỉ có một!). Tuy nhiên, nếu bạn có nhiều khóa, bạn có thể sao chép chỉ một khóa cụ thể bằng -icờ.
ssh-copy-id -i ~.ssh/key_name.pub user@host
Thay thế key_name.pubbằng tên của chìa khóa.
Bạn có thể tạo khóa ssh bằng lệnh:
ssh-keygen
Sau đó, bạn có thể sao chép khóa của mình vào máy chủ bằng:
ssh serveruser@servername "echo `cat ~/.ssh/id_dsa.pub` >> ~/.ssh/authorized_keys"
Bây giờ bạn có thể tự động đăng nhập vào máy chủ web của mình
ssh-copy-id -i ~/.ssh/id_dsa.pub serveruser@servernamehoặc ~/.ssh/id_rsa.pubtương ứng. Trên thực tế, nếu bạn sử dụng tên mặc định cho tệp chính, bạn thậm chí không phải chỉ định nó.
đặt cái này vào ~/.bashrc
eval $(ssh-agent)
ssh-add ~/.ssh/where_ever_privake_key_is
Nếu khóa của bạn không có mật khẩu và được đặt tên là một trong những tệp ssh sẽ cố gắng tìm kiếm khi xác định ( ~/.ssh/id_dsahoặc ~/.ssh/id_rsa), bạn không cần phải thêm nó vào đại lý của mình.
NHƯNG. Nếu có khả năng nhỏ nhất những tệp đó bị đánh cắp, bạn sẽ chỉ cho phép mọi người truy cập vào các máy chủ mà bạn đang sử dụng danh tính này. Trong ngắn hạn, pwned.
IMHO, khóa riêng không có mật khẩu là một thực tiễn xấu và chỉ nên được sử dụng trong các môi trường ~/.ssh/authorized_keysrất hạn chế.
Đối với AWS, tải xuống khóa pem và chạy:
ssh-add /path/to/pemfile.pem
Điều đó làm việc cho tôi, Ubuntu 18.04. Nguồn , không có gì khác là cần thiết.
NB : Tuy nhiên, điều quan trọng là phải đặt quyền thành 400 trước khi thực hiện việc này.
chmod 400 /path/to/pemfile.pem
Nếu không bạn sẽ gặp lỗi:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @
CẢNH BÁO: FILE CHÍNH HÃNG KHÔNG GIỚI HẠN! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ Quyền 0664 cho '/home/toing_toing/blablabla.pem' quá mở. Người khác yêu cầu các tệp khóa riêng của bạn KHÔNG được truy cập bởi người khác. Khóa riêng này sẽ bị bỏ qua.
ssh serveruser@servername "cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys"
Bạn đang nói về Amazon Cloud? Trong ~ / .bashrc của bạn, tạo các biến môi trường:
# Amazon
export EC2_PRIVATE_KEY=$HOME/Keys/pk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pem
export EC2_CERT=$HOME/Keys/cert-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pem
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk/
ssh-keygenhoặcssh-copy-id, ví dụ. Mặt khác, những câu trả lời như thế này hoàn toàn rõ ràng và hữu ích với tôi về trình độ hiểu biết của tôi. Tùy thuộc vào việc bạn có muốn điều chỉnh câu trả lời của mình theo bất kỳ cách nào để giúp những người thiếu hiểu biết như tôi không. :)