Tôi sử dụng Mac OS X Lion và đăng nhập máy chủ từ xa qua SSH mỗi ngày. Mặc dù thực tế là tôi sử dụng cặp khóa SSH để xác thực từ xa và tôi không cần phải cơ giới hóa cụm từ đăng nhập của mọi máy chủ, nhưng vẫn rất khó chịu khi thiết bị đầu cuối yêu cầu cụm mật khẩu để truy cập khóa riêng SSH của tôi.
Vì lý do bảo mật, tôi nghĩ, một cụm mật khẩu để truy cập khóa riêng SSH là cần thiết. Có cách nào để thiết bị đầu cuối yêu cầu cụm từ chính xác chỉ một lần khi khởi động, sau đó ghi nhớ nó và tự động sử dụng khóa riêng của tôi trong các phiên SSH sau này không?
Có một đoạn script được gọi là keychain
hoạt động tốt trên Gentoo Linux. Nhưng tôi không bao giờ tìm ra nó trên Mac OS X Lion. Hơn nữa, có rất nhiều điều khoản đáng sợ, chẳng hạn như ssh-agent
, ssh-add
. Sau khi đọc các tài liệu khác nhau về các bộ công cụ SSH đó và thực hiện một số thử nghiệm bực bội, tôi càng bối rối hơn.
Do đó, tôi đã đến StackExchange, tìm kiếm một số lời khuyên về các câu hỏi sau đây.
- Là gì
ssh-agent
,ssh-add
,keychain
,Keychain Access.app
và cách họ tương tác với nhau? - Làm cách nào tôi có thể nhập cụm mật khẩu cho khóa riêng SSH của mình một lần khi đăng nhập và sử dụng nó một cách tự do trong lần tạo phiên SSH sau này?
- Ơ ... có chuyện gì vậy
Keychain Access.app
? Nó không lưu trữ cụm từ SSH như trước đây.
Tôi liệt kê những gì tôi đã làm ở đây. Hy vọng có những manh mối về các bước tôi đã bỏ lỡ.
Bước 1. Tạo một cặp khóa SSH trên máy Mac của tôi.
$ ssh-keygen -t rsa -C "me@email.com"
# Set a passphrase for accessing the private key.
Bước 2. Sao chép khóa công khai SSH của tôi vào máy chủ từ xa. Để lấy một ví dụ, tôi sao chép khóa vào localhost, Mac.
$ ssh-copy-id USER@localhost
# Enter the login password for USER at localhost, not my SSH passphrase
Bước 3. Sau đó thử kết nối với máy chủ từ xa (localhost tại đây), thông qua xác thực cặp khóa SSH.
$ ssh USER@locahost
Enter passphrase for key '/Users/YOUR_ACCOUNT/.ssh/id_rsa':
# Enter my SSH passphrase, not the login password.
Bước 4. Thoát khỏi máy chủ từ xa và cố gắng kết nối lại. Chết tiệt, thiết bị đầu cuối yêu cầu cụm từ SSH một lần nữa.
Một câu hỏi thường gặp là "ssh-agent có hoạt động tốt trên máy Mac của bạn không?". Thẳng thắn mà nói, tôi không biết chuyện gì đang xảy ra. Ở đây hiển thị một số kết quả chạy.
$ echo $SSH_AUTH_SOCK
/tmp/launch-M48niA/Listeners
$ echo $SSH_AUTH_PID
(EMPTY)
$ ssh-add -l
Could not open a connection to your authentication agent.
$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-Z54zXukQiP/agent.26769; export SSH_AUTH_SOCK;
SSH_AGENT_PID=26770; export SSH_AGENT_PID;
echo Agent pid 26770;
$ ssh-add -l
Could not open a connection to your authentication agent.
$ echo $SSH_AUTH_SOCK
/tmp/launch-M48niA/Listeners
$ echo $SSH_AUTH_PID
(STILL EMPTY)
$ ssh-agent # Oh no, anther ssh-agent with different PID
SSH_AUTH_SOCK=/tmp/ssh-cx0B4FUX8B/agent.26898; export SSH_AUTH_SOCK;
SSH_AGENT_PID=26899; export SSH_AGENT_PID;
echo Agent pid 26899;
$ ps -e | grep -i ssh
26769 ?? 0:00.03 ssh-agent
26899 ?? 0:00.02 ssh-agent
Bất kỳ thông tin phản hồi đều được hoan nghênh. Cảm ơn!