2009-04-10 19 views
8

Làm cách nào tôi có thể thuyết phục rằng id_dsa không được lưu trữ trong ~/.ssh khi kết nối với một máy chủ cụ thể.cách lấy ssh để sử dụng id_dsa khác

Câu hỏi rõ ràng là lý do tại sao. Câu trả lời là khóa này nhạy cảm hơn và cần phải được bảo vệ bằng mật khẩu trong khi cái kia được sử dụng để tự động hóa.

Mặc dù đây không phải là vấn đề lập trình, tôi sẽ không ngạc nhiên khi biết điều này đòi hỏi giải pháp lập trình.

+0

Lý do duy nhất tôi cho rằng đây là lập trình liên quan là nhiều công cụ SCM sử dụng ssh như một phần của phương pháp hành động để làm việc và các công cụ SCM chắc chắn liên quan đến lập trình. –

Trả lời

6

Trong .ssh/config của bạn, thiết lập một cái gì đó như:

Host somehost 
    IdentityFile /path/to/extra_secret_key 

Tôi có một máy chủ có IdentityFile thiết lập để ~/.ssh/iddsa_aux, nhưng tham số nên chấp nhận bất kỳ con đường Tên.

+0

Tuyệt vời. Chính xác những gì tôi đang tìm kiếm và không thể tìm thấy. Bạn sẽ không tin rằng làm thế nào gần tôi đến để làm cho một bản sao thứ hai của ssh và sửa đổi nó với một hexeditor. – Joshua

2

Từ trang ssh người đàn ông:

-i identity_file 
     Selects a file from which the identity (private key) for RSA or 
     DSA authentication is read. The default is ~/.ssh/identity for 
     protocol version 1, and ~/.ssh/id_rsa and ~/.ssh/id_dsa for pro- 
     tocol version 2. Identity files may also be specified on a per- 
     host basis in the configuration file. It is possible to have 
     multiple -i options (and multiple identities specified in config- 
     uration files). 
+0

Darn nó. Tôi đọc trang người đàn ông và bỏ qua nó. – Joshua

12

Có một mẹo tiện dụng mà bạn có thể sử dụng để làm cho nó thực sự dễ dàng, kỳ quặc, tôi vừa thảo luận điều này 30 phút trước với một người bạn.

~/.ssh/config

 
IdentityFile ~/.ssh/ident/%[email protected]%h 
IdentityFile ~/.ssh/id_rsa 
IdentityFile ~/.ssh/id_dsa 

Điều này làm cho nó thực sự dễ dàng để sử dụng một mô hình dự phòng, như các tùy chọn được chạy qua trên xuống dưới.

Sau đó, để xác định một phím cụ thể cho "Bob @ someHost" bạn chỉ cần có để tạo ra các tập tin

 
~/.ssh/ident/[email protected] 

Và nó sẽ cố gắng mà lần đầu tiên khi đăng nhập vào máy chủ đó.

Nếu tập tin không thể được tìm thấy, hoặc phím bị từ chối, nó sẽ cố gắng tiếp theo, trong trường hợp này,

 
~/.ssh/id_rsa 

Lợi ích của kỹ thuật này là bạn không cần phải thêm một mới nhập mỗi khi bạn thêm một máy chủ khác, tất cả những gì bạn phải làm là tạo keyfile ở đúng nơi và phần còn lại sẽ tự động.

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