Bạn có thể sao chép khóa công khai của mình vào các máy từ xa. Miễn là chúng được bật xác thực khóa công khai và khóa chung của bạn có mặt trên máy từ xa, bạn có thể ssh
đến các máy mà không phải cung cấp mật khẩu.
Trước tiên, bạn sẽ cần tạo một cặp khóa công khai / riêng tư như vậy:
ssh-keygen -t rsa
Thực hiện theo các hướng dẫn. Khi nó hỏi bạn có muốn bảo vệ khóa bằng cụm mật khẩu hay không, hãy nói CÓ! Thực tế không tốt khi không bảo vệ mật khẩu các khóa của bạn và tôi sẽ chỉ cho bạn cách chỉ phải nhập mật khẩu một lần.
Nếu bạn đã có khóa, bạn có thể bỏ qua bước trên.
Bây giờ, giả sử khóa ssh của bạn tồn tại trên máy Mac ~/.ssh/id_rsa.pub
, bạn có thể cài đặt nó trên máy từ xa bằng cách chạy:
cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Đối với ví dụ máy chủ cụ thể của bạn được trích dẫn ở trên, lệnh sẽ như sau:
cat ~/.ssh/id_rsa.pub | ssh -p 2200 root@123.456.789.012 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Bạn sẽ phải nhập mật khẩu root@123.456.789.012
để thực hiện bản sao này, nhưng đây sẽ là lần cuối cùng bạn cần làm điều này. Giả sử máy chủ từ xa sshd
được thiết lập để thực hiện xác thực khóa riêng tư, khi bạn ssh vào hộp, nó không nên hỏi bạn mật khẩu cho root
tài khoản - thay vào đó, bạn sẽ hỏi bạn mật khẩu cho khóa của bạn . Đọc về cách làm điều này mà bạn không cần phải nhập mọi lúc.
Lặp lại ở trên cho mọi máy bạn muốn nhập vào bằng các phím thay vì mật khẩu.
Xin lưu ý, bất kỳ ai nắm giữ ~/.ssh/id_rsa
tệp của bạn đều có thể ssh vào máy này root
mà không cần cung cấp mật khẩu cho máy từ xa. Mật khẩu bảo vệ tệp khóa đảm bảo họ cần biết mật khẩu cho khóa đó để sử dụng. Hãy chắc chắn rằng tập tin đó là an toàn. Sử dụng mã hóa đĩa trên máy Mac của bạn và giữ các quyền trên tệp và ~/.ssh/
thư mục chặt chẽ.
Để giúp sử dụng khóa dễ dàng hơn mà không phải nhập mật khẩu mỗi lần, OS X chạy một ssh-agent
quy trình trong nền trên máy của bạn. Tác nhân này sẽ lưu trữ bộ khóa trong lần đầu tiên bạn sử dụng nó để bạn chỉ phải nhập mật khẩu của mình một lần. Nếu bạn chỉ ngủ mac, không bao giờ khởi động lại nó, bạn có thể đi trong thời gian dài mà không cần nhập mật khẩu.
Bạn có thể lưu trước bộ đệm tất cả các khóa SSH ssh-agent
bằng cách chạy:
ssh-add
Bây giờ bạn chỉ cần nhớ mật khẩu chính , không phải nhiều mật khẩu tài khoản khác nhau. Tôi thường giữ mật khẩu chính của mình trong 1Password (không liên kết), đơn giản hóa thêm bao nhiêu mật khẩu tôi cần nhớ. Sau đó, tôi chỉ cần tra cứu chúng trong 1Password và cắt và dán chúng vào Terminal vào thời điểm kỳ lạ khi tôi khởi động lại máy Mac của mình và khiến việc chạy của tôi ssh-agent
được khởi động lại.
Nếu bạn kết hợp sao chép khóa của mình vào các máy từ xa với giải pháp quản lý kết nối Terminal.app trong câu hỏi này , bạn sẽ có một cái gì đó rất gần với PuTTY cho trải nghiệm kết nối GUI.
Về phía máy chủ, hãy kiểm tra /etc/ssh/sshd_config
và đảm bảo:
PubkeyAuthentication yes
được kích hoạt trong cấu hình (theo mặc định trong OpenSSH). Bạn cũng có thể muốn đặt:
PasswordAuthentication no
Mặc dù bạn đang ở đó nên xác thực dựa trên mật khẩu bị vô hiệu hóa và các khóa trở thành cách duy nhất để truy cập vào máy.
Bạn sẽ cần khởi động lại sshd trên máy nếu bạn thực hiện bất kỳ thay đổi nào đối với tệp cấu hình.