2008-09-17 27 views
44

ssh sẽ tìm khóa theo mặc định trong thư mục ~/.ssh. Tôi muốn ép buộc nó luôn luôn nhìn vào một vị trí khác.Đặt vị trí khóa ssh mặc định

Cách giải quyết Tôi đang sử dụng là thêm các phím từ vị trí phi tiêu chuẩn để các agent:

ssh-agent 
ssh-add /path/to/where/keys/really/are/id_rsa 

(trên Linux và MingW32 vỏ trên Windows)

+0

btw, lý do tại sao tôi muốn làm điều này là để tôi có thể giữ các khóa của mình trong Dropbox .. hoạt động một điều trị! – tardate

+3

Bạn có thể ném vào các liên kết tượng trưng? –

+7

@tardate, hmm, đáng tin cậy dropbox với các phím của bạn có vẻ nguy hiểm, trừ khi bạn bảo vệ mật khẩu tốt ... – gatoatigrado

Trả lời

71

Nếu bạn chỉ tìm kiếm để trỏ đến một địa điểm khác nhau cho bạn tập tin danh tính, các bạn có thể sửa ~/.ssh/tập tin cấu hình của bạn với các mục sau đây:

IdentityFile ~/.foo/identity 

man ssh_config để tìm khác tùy chọn cấu hình.

+3

Cũng lưu ý rằng bạn có thể liệt kê tham số này nhiều lần cho nhiều khóa. Tuy nhiên, việc liệt kê quá nhiều khóa (thường là> 4) có thể khiến cho auth bị lỗi trước khi nhắc mật khẩu trên các hệ thống mà khóa của bạn không hợp lệ. ssh-agent hoặc keychain (http://www.gentoo.org/proj/en/keychain/) hữu ích ở đây. – jmanning2k

+0

nếu bạn có mật khẩu bảo vệ cho bạn ssh phím, bạn nên 'ssh-thêm của bạn-private-key', nếu không, nó luôn luôn yêu cầu mật khẩu của khóa –

+0

Tôi đã phải thêm dòng đó vào đầu của cấu hình. Thêm nó vào cuối không hoạt động. – SebK

14

man ssh mang lại cho tôi tùy chọn này sẽ có thể hữu ích.

-i identity_file Chọn tệp mà từ đó nhận dạng (khóa cá nhân) cho RSA hoặc Xác thực DSA được đọc. Giá trị mặc định là ~/.ssh/identity cho giao thức phiên bản 1 và ~/.ssh/id_rsa và ~/.ssh/id_dsa cho pro- phiên bản tocol 2. Tệp định danh cũng có thể được chỉ định trên cơ sở lưu trữ trên mỗi máy chủ trong tệp cấu hình. Có thể có các tùy chọn nhiều -i (và nhiều danh tính được chỉ định trong các tệp cấu hình config- ).

Vì vậy, bạn có thể tạo một bí danh trong cấu hình bash của bạn với một cái gì đó giống như

alias ssh = "ssh-i/path/to/private_key"

Tôi đã không nhìn vào tệp cấu hình ssh, nhưng cũng giống như tùy chọn -i cũng có thể được đặt tên là

-F configfile Chỉ định tệp cấu hình thay thế cho mỗi người dùng. Nếu tệp con- được hiển thị trên dòng lệnh, tệp cấu hình toàn hệ thống (/ etc/ssh/ssh_config) sẽ bị bỏ qua. Mặc định cho tệp cấu hình cho mỗi người dùng là ~/.ssh/config.

-5

Vị trí của tệp là thư mục /root/.ssh với tên "authorized_keys", thường là nó bị ẩn vì lý do bảo mật. * nếu bạn sử dụng lệnh puTTy và dòng lệnh, hãy sử dụng: #cd ~/.ssh và sau đó chỉnh sửa tệp "authorized_keys" bằng trình chỉnh sửa vi. Ngoài ra hãy tham khảo, gõ #man ssh_config sẽ cung cấp thêm tùy chọn (nếu cần) Hy vọng điều này sẽ hữu ích.

+0

Điều này không cung cấp câu trả lời cho câu hỏi. Để phê bình hoặc yêu cầu làm rõ từ tác giả, để lại nhận xét bên dưới bài đăng của họ - bạn luôn có thể nhận xét về bài đăng của riêng bạn và sau khi bạn có đủ [danh tiếng] (http://stackoverflow.com/help/whats-reputation), bạn sẽ có thể [nhận xét về bài đăng bất kỳ] (http://stackoverflow.com/help/privileges/comment). – Kenster

+0

@Kenster: Theo cách nào thì đó không phải là câu trả lời? –

+1

@LightnessRacesinOrbit Câu hỏi đặt ra là để khách hàng ssh đọc các khóa từ một vị trí khác. Không có gì trong câu trả lời này là đáp ứng với điều đó. _authorized_keys_ được đọc bởi _server_, không phải là máy khách và không có thay đổi nào bạn có thể thực hiện đối với tệp đó sẽ thay đổi nơi _client_ tìm kiếm các khóa của nó. Ngay cả khi có lý do chính đáng để chỉnh sửa tệp đó, câu trả lời không cho biết lý do chỉnh sửa hoặc thay đổi để thực hiện. Tôi biết chúng tôi được cho là hào phóng khi quyết định xem có điều gì đó không phải là câu trả lời hay không. Nhưng "câu trả lời" này là tốt nhất một đoạn văn bản chung liên quan đến ssh. – Kenster

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