.ssh / config: “Tùy chọn cấu hình không hợp lệ: UseKeychain” trên Mac OS Sierra 10.12.6


92

Tôi đang cố gắng thiết lập cấu hình ssh của mình trên Mac (Mac OS Sierra 10.12.6) theo cách nó lưu trữ cụm mật khẩu cho khóa ssh của tôi trong chuỗi khóa. Trước đây tôi có thể làm điều đó với

ssh-add -K ~/.ssh/id_rsa

Nhưng gần đây điều này dường như không còn hiệu quả nữa. Sau bài viết này , dường như có một sự thay đổi trong hoạt động của cấu hình ssh trong Mac OS> 10.12.2 và cách được khuyến nghị để khắc phục sự cố này là thêm UseKeychain yesvào cấu hình ssh của bạn. Vì vậy, đây là .ssh/configphần của tôi Host *:

Host *
  Port 22
  ServerAliveInterval 60
  ForwardAgent yes
  IdentityFile ~/.ssh/id_rsa
  AddKeysToAgent yes
  UseKeychain yes

Khi cố gắng chuyển sang máy chủ nước ngoài, tôi nhận được thông báo lỗi sau:

$ ssh my-host
/Users/USER/.ssh/config: line 16: Bad configuration option: usekeychain

Bất kỳ ý tưởng tại sao điều này xảy ra và làm thế nào tôi có thể sửa chữa nó? Cảm ơn!

Câu trả lời:


172

Cố gắng chỉ định một tùy chọn khác, cụ thể IgnoreUnknownnhư dưới đây:

Host *
  IgnoreUnknown UseKeychain
  UseKeychain yes

Bạn có thể tìm thêm thông tin về điều này ở đây .

Nếu bạn đã có một IgnoreUnknowngiá trị, hãy sử dụng các giá trị được phân tách bằng dấu phẩy

Host *
  IgnoreUnknown AddKeysToAgent,UseKeychain
  AddKeysToAgent yes
  UseKeychain yes

2
Tạm thời bỏ qua tệp cấu hình ssh -F /dev/null ..., nó hoạt động với tôi.
Itachi

1
Việc thêm IgnoreUnknown UseKeychainvẫn không hoạt động đối với tôi, vì vậy tôi xóa UseKeychain yeshoàn toàn và nó hoạt động. Tuy nhiên, không chắc đây là cách tiếp cận tốt nhất.
Hank Chan

Giải pháp này có hiệu quả với tôi nhưng tôi không hiểu tại sao lại đột ngột thay đổi? Tôi chỉ đăng nhập vào tài khoản DigitalOcean của mình.
anjanesh

Tôi đã xóa tất cả các tùy chọn và rời khỏi Host và IdentityFile. Github nói rằng hãy sử dụng những tùy chọn đó nhưng chúng cũng không hiệu quả với tôi. Cảm ơn.
Natus Drew

51

Câu trả lời được chấp nhận đã giúp tôi nhưng không hoàn toàn giải quyết được vấn đề của tôi vì tôi có nhiều lựa chọn không tốt. Dưới đây là một ví dụ về những gì nó có thể trông như thế nào nếu bạn gặp sự cố này:

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

Tôi chỉ muốn để điều này ở đây: Tôi cũng gặp sự cố khi kết nối từ xa và đây chính là vấn đề. Vấn đề này được tạo ra bằng cách sử dụng công cụ Sourcetree Bitbucket, mà tôi đã gỡ cài đặt nhưng lại tàn dư mà ngăn chặn kết nối từ xa
Connor

Cảm ơn! Làm việc trên MacOS mojave 10.14.6
brendan

Tại sao điều này hoạt động? Tôi đã gặp vấn đề tương tự và câu trả lời này đã sửa nó, nhưng tôi vẫn không biết tại sao điều này lại hiệu quả hoặc tại sao tôi lại gặp sự cố ngay từ đầu ..
Nishant Mehta

2

Tôi chỉ nhận xét ra dòng và scp / ssh bắt đầu làm việc cho tôi một lần nữa.


1

Thay vì ssh-add, hãy gõ 'open .ssh / id_rsa' và thêm nó vào chuỗi khóa

Tùy chọn UseKeychain chưa bao giờ xuất hiện xấu trên cấu hình của tôi, nhưng tôi đã có ngay từ đầu, trước bất kỳ máy chủ nào khác, như sau

Host *
UseKeychain yes 

Host (...)

FYI, tôi nghĩ đó là lệnh sai. Nếu bạn viết nó theo cách đó, các *quy tắc của bạn sẽ bị bỏ qua. man ssh_configcho biết, "Vì giá trị thu được đầu tiên cho mỗi tham số được sử dụng, các khai báo dành riêng cho máy chủ lưu trữ sẽ được đưa ra gần đầu tệp và mặc định chung ở cuối."
Telemachus

FYI, tôi đã có nó như vậy trong gần một thập kỷ với hàng chục máy chủ và chưa bao giờ gặp sự cố. Tôi ssh đến rất nhiều máy chủ mỗi ngày. Tuy nhiên, nếu bất kỳ ai phát hiện ra vấn đề thực sự với cấu hình đó, có thể đó sẽ là vấn đề.
Ricardo Mendes

0

Đó là viết hoa -K hãy thử viết thường -k !!

ssh-add -k ~/.ssh/id_rsa

Enter passphrase for /Users/tom/.ssh/id_rsa:
Identity added: /Users/tom/.ssh/id_rsa (/Users/tom/.ssh/id_rsa)

ssh-addkhông có -Ktùy chọn ít nhất trên macOS. man ssh-add:-K When adding identities, each passphrase will also be stored in the user's keychain. When removing identities with -d, each passphrase will be removed from it.
uasi

0

Tôi đã gặp vấn đề tương tự và tôi nhận ra rằng khi bắt đầu tạo khóa bằng cách làm theo hướng dẫn. Bước đầu tiên là đây.

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Tôi đã không thay đổi địa chỉ email nhưng tất nhiên tôi đã quên làm điều đó: D. Vì vậy, hãy chắc chắn rằng không quên bước đó và tất cả sẽ ổn.

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.