2009-12-15 24 views
98

Tôi biết câu trả lời là có, nhưng tôi khá Unix câm và có lẽ sẽ không nhận ra giải pháp nếu nó đánh tôi vào mặt.SVN + SSH, không phải làm ssh-add mỗi lần? (Mac OS)

Tôi đang ở trên máy Mac, kết nối với máy chủ SVN qua đường hầm SSH. Tôi phải ssh-add privateKey.txt mỗi khi tôi muốn kết nối với máy chủ SVN (Cả hai nền tảng và Xcode đang kết nối với SVN).

Có cách nào để "lưu" chìa khóa ở đâu đó nên tôi không phải làm điều này mỗi lần? Thêm nó vào Keychain của tôi? Một số tập tin cấu hình? Bắt đầu lên kịch bản?

Trả lời

167

Thứ nhất, di chuyển tập tin khóa riêng của bạn vào ~/.ssh. Điều này là không cần thiết nhưng nó là nơi tiêu chuẩn cho những thứ như vậy.

Sau đó chạy ssh-add -K ~/.ssh/privateKey.txt. Nó sẽ nhắc mật khẩu của bạn nếu cần, sau đó thêm nó vào Keychain của bạn.

Sau đó, bạn không cần phải làm gì khác. Lời giải thích hơi dài hơn có sẵn here.

+16

tôi con số đó đáng chú ý một cách rõ ràng rằng đây là một điều Mac, không phải là một điều Unix phổ biến. Trên Ubuntu, 'ssh-add' không thể lấy tham số' -K'. –

+2

Tôi muốn lưu ý rằng trong khi bài viết được liên kết dành cho Leopard, điều này vẫn hoạt động trong OS X Mavericks. –

+1

Có thể ai đó có lệnh tương đương cho các môi trường khác? mysysgit ssh-add không chấp nhận đối số -K, hoặc – Blake

2

Tôi không có nhiều kinh nghiệm với Mac, vì vậy không chắc chắn nếu phiên bản này là ok cho bạn, nhưng có một cái nhìn tại http://www.phil.uu.nl/~xges/ssh/

Nếu ứng dụng đặc biệt này không hoạt động, đó là những gì bạn đang tìm kiếm cho anyways - ssh agent. Trên các hộp giống unix, bạn muốn bắt đầu toàn bộ trình quản lý cửa sổ của bạn thông qua đó, để có được hiệu ứng toàn cục, nhưng có thể không có trong osx.

Một số thông tin thêm: http://www-uxsup.csx.cam.ac.uk/~aia21/osx/leopard-ssh.html

1

sshkeychain là một khả năng. cài đặt tốt với macports sử dụng:

sudo port install sshkeychain 

nó sử dụng keychain để lưu trữ mật khẩu, và bạn có thể chỉ đơn giản là khởi động nó vào lúc bắt đầu-up của phiên đăng nhập của bạn (sử dụng tại buổi ra mắt đầu tiên click chuột phải-ght thông thường trong biểu tượng của dock + "khởi chạy khi khởi động")

Lưu ý rằng svn của Apple sử dụng keychain để lưu mật khẩu nhưng không nhất thiết phải là nhị phân svn bạn sẽ xây dựng với macports.

18

Sau nhiều lần khám phá, tôi nghĩ rằng tôi đã tìm thấy câu trả lời cho vấn đề này hoàn toàn. Trước tiên, hãy đảm bảo bạn thực hiện ssh-add -K ~/.ssh/your_key_here. Điều này thêm chìa khóa vào keychain của bạn. Một số nơi, tôi đã đọc rằng điều này là đủ, nhưng tôi không chắc chắn. Đây cũng là đặc trưng của máy Mac, vì vậy nếu bạn cần làm điều này trên một hương vị khác, bạn sẽ không có tùy chọn này nhất thiết.

Để có biện pháp tốt, tôi đã chỉnh sửa tệp ~/.ssh/config (bạn có thể phải tạo tệp) để trỏ đến tất cả các khóa tôi có. Tôi có những điều sau đây:

IdentityFile ~/.ssh/identity 
IdentityFile ~/.ssh/id_rsa 
IdentityFile ~/.ssh/id_dsa 
IdentityFile ~/.ssh/my_other_identity_here 
IdentityFile ~/.ssh/yet_another_identity_here 

Theo man page cho ssh_config, nó sẽ thử các thứ tự này. Tôi không chắc chắn nếu ba cái mặc định đầu tiên tôi đã liệt kê cần phải có, nhưng tôi đã bao gồm chúng anyway.

+0

Không có cờ '-K' trên mac os x cho 'ssh-add' –

+2

Có ** là ** cờ' -K' trên OS X cho 'ssh-add'. Thêm vào đó, đây sẽ là câu trả lời được chọn. – kaiser

+1

Hãy chắc chắn rằng bạn sử dụng '/ usr/bin/ssh-add' homebrew cung cấp'/usr/local/bin/ssh-add' không cung cấp tùy chọn -K. –

49

Lưu trữ Cụm mật khẩu trong Keychain

Để lưu trữ các cụm từ mật khẩu cho khóa mặc định của bạn trong Keychain mở Terminal và chạy:

ssh-add -K 

Và để lưu trữ các cụm từ mật khẩu cho một hoạt động quan trọng khác nhau:

ssh-add -K /path/to/private/key/file 

Khi được nhắc nhập cụm mật khẩu của bạn, hãy nhập cụm từ mật khẩu đó vào.

Bạn sẽ không bao giờ phải chạy ssh-add và cũng không nhập lại cụm mật khẩu của mình.

trả lời lấy từ trang web này: http://www-uxsup.csx.cam.ac.uk/~aia21/osx/leopard-ssh.html

3

Kể từ khi hệ điều hành MacOS 10.12.2 bạn có thể sử dụng tùy chọn UseKeychain. Read more here hoặc xem xét man ssh_config.

 UseKeychain 
     On macOS, specifies whether the system should search for passphrases in the user's keychain 
     when attempting to use a particular key. When the passphrase is provided by the user, this 
     option also specifies whether the passphrase should be stored into the keychain once it has 
     been verified to be correct. The argument must be ``yes'' or ``no''. The default is ``no''. 

Vì vậy, chỉ làm như sau:

echo "UseKeychain yes" >> ~/.ssh/config

+1

Điều này cần tăng lên. **Rất quan trọng**! – quarezz

Các vấn đề liên quan