macOS Sierra có vẻ không nhớ SSH key giữa các lần reboot

Em phải chạy lệnh này kể từ khi nâng cấp lên macOS:

ssh-add -K

Lệnh này giúp sửa lỗi mỗi lần reboot nhưng em phải chạy lệnh mỗi lần đăng nhập vào máy tính

Nếu không chạy lệnh trên, key trong  ~/.ssh sẽ bị bỏ qua và em lại bị hỏi mật khẩu server để thiết lập kết nối.

Có bác nào biết tại sao không ạ?

 

Bình luận

 

Trong macOS Sierra 10.12.2, Apple đã cho thêm 1 tùy chọn ssh_config gọi là UseKeychain  để giải quyết vấn đề trên.Thêm phần sau vào file ~/.ssh/config của bạn:

Host *
   AddKeysToAgent yes
   UseKeychain yes
   IdentityFile ~/.ssh/id_rsa

Trong phần ssh_config man trên 10.12.2:

UseKeychain

Trên macOS,  dùng để xác định rõ  xem hệ thống có nên tìm kiếm mật khẩu trong keychain của người dùng không khi định sử dụng một mật khẩu  đặc biệt. Khi mật khẩu được cung cấp bởi người dùng, tùy chọn này cũng xác định xem mật khẩu có nên được lưu trữ vào keychain một khi nó đã được xác minh là đúng. Các đối số phải là ‘có’ hoặc ‘không’. Mặc định là “không”.

Đã trả lời vào January 7, 2017
Bình luận
Chấp nhận

Tớ cũng từng bị như bạn khi định dùng code của Capistrano. Sau đó tớ đã tìm được 2 cách để giải quyết tình trạng này:

Cách 1:  Thêm tất cả các keys vào SSH agent

Cách đầu tiên là chạy lệnh ssh-add với tùy chọn-A – cho phép thêm nhận diện vào SSH agent bằng cách sử dụng các cụm mật khẩu lưu trữ trong keychain, như sau:

ssh-add -A

Mặc dù hiện tại thì được nhưng lát nữa khởi động lại là không được, nếu không muốn thế, chỉ cần mở ~/.bash_profile như sau

nano ~/.bash_profile

thêm dòng sau vào phía cuối

ssh-add -A 2>/dev/null;

Vậy là xong, giờ bạn mở Terminal sẽ không vấn đề gì nữ

Cách 2: chỉ thêm vào SSH các key đã có sẵn trong keychain 

Mặc dù cách trên hiệu quả trong hầu hết các trường hợp, tớ đã gặp phải 1 vấn đề khi có 6-7 Vagrant box( dùng SSH keys để truy cập) cài đặt trên id_rsa.pub 

Cuối cùng, tớ đã bị khóa ngoài server vì sai SSH key quá nhiều lần. SSH s cả các SSH key nhưng không được nên tớ thậm chí không thể có được mật khẩu

Vấn đề là là thêm ssh-add -A chỉ thêm từng  SSH key một khi bạn váo agent mặc dù  có trường hợp   không cần phải làm thế

Sau đó, tớ đã tìm ra giải pháp cho vấn đề:

Đầu tiên, nếu bạn có SSH key đã thêm vào không cần thiết, mở bằng cách vào ssh-add -l sau đó xóa trong agent bằng cách

ssh-add -D

Khi đã xong, khởi động lại SSH agent như một trình chạy nền như sau:

eval "$(ssh-agent -s)"

Trong một số trường hợp, bạn có thể đặc biệt thêm ~/.ssh/id_rsa.pub key vào agent như sau:

ssh-add ~/.ssh/id_rsa.pub

Gõ mật khẩu, ấn Return 

Nhưng trong 1 số trường hợp, chỉ cần chạy lệnh sau là key được thêm vào:

ssh-add -K

Nếu được, gõ  ssh-add -l là bạn sẽ thấy chỉ có 1 SSH key được liệt kê ở đó

Bây giờ, mở lại .bash_profile:

nano ~/.bash_profile

Sau đó thêm dòng sau vào dưới,bình luận hoặc bỏ phiên bản  -A nếu bạn đã có săn

ssh-add -K 2>/dev/null;

Cách trên sẽ cho phép SSH key được thêm vào SSH agent mỗi lần khởi động

Đã trả lời vào January 11, 2017
Bình luận

Đáp án của bạn

Với việc gửi đáp án, bạn đã đồng ý với Chính sách dữ liệuCác điều khoản của chúng tôi.