Làm thế nào để tránh gõ ssh-add mọi lúc


11

Tôi đã đọc và làm theo một số tài liệu trực tuyến về cách thiết lập một ssh-agent để tôi không cần phải nhập mật khẩu mỗi khi tôi ssh đến một máy từ xa.

Tuy nhiên, với sự trợ giúp của ssh-agent , tôi vẫn cần phải làm ssh-addmỗi khi tôi khởi động lại shell. Sau ssh-addđó yêu cầu tôi nhập cụm mật khẩu để mở khóa riêng.

Enter passphrase for key '/home/xx/.ssh/id_rsa':

Thay vì nhập mật khẩu cho máy từ xa, tôi được yêu cầu nhập mật khẩu cho khóa riêng. Nó giống như bước ra khỏi luyện ngục và sau đó thấy mình rơi vào địa ngục. Có vẻ như id_rsa chỉ được thêm tạm thời vào tác nhân ssh trong một phiên , bởi vì mỗi lần tôi đăng nhập và gõ ssh-add -l. Tôi có:

The agent has no identities.

Tôi có thể hỏi làm thế nào để lưu trữ khóa (id_rsa) vĩnh viễn trong ssh-agent không? Cảm ơn

EDIT: đây là những gì tôi đã làm với ssh-agent. Tôi nối thêm khối sau vào~/.bash_profile

SSHAGENT=/usr/bin/ssh-agent                                                                                        
SSHAGENTARGS="-s"
if [ -z "$SSH_AUTH_SOCK" -a -x "SSHAGENT" ]; then
  eval `$SSHAGENT $SSHAGENTARGS`
  trap "kill $SSH_AGENT_PID" 0
fi

Bạn có nghĩa là bạn phải nhập cụm mật khẩu của bạn mỗi lần bạn đăng nhập hoặc mỗi lần bạn mở một cửa sổ shell? Bạn nói rằng bạn đã theo dõi một số tài liệu trực tuyến, nhưng ssh-agent hoạt động vượt trội trên Ubuntu, vì vậy bạn không nên có bất cứ điều gì để làm. Bạn đã làm gì chính xác?
Gilles 'SO- ngừng trở nên xấu xa'

Tôi phải gõ cụm mật khẩu mỗi lần tôi ssh vào máy từ xa. NHƯNG nó không phải là cụm mật khẩu để truy cập vào máy từ xa, nó là cụm mật khẩu để mở khóa khóa riêng của tôi (id_rsa).
ssgao

Tôi biết rằng đó là mật khẩu chính của bạn. Những gì tôi đang hỏi là những gì bạn đã làm để thiết lập ssh-agent và liệu việc chạy ssh-addcó ảnh hưởng lâu hơn cửa sổ shell mà bạn đã nhập không.
Gilles 'SO- ngừng trở thành ác quỷ'

Hiệu ứng kéo dài cho đến khi tôi đăng xuất khỏi hệ thống (cục bộ). Tôi đặt những gì tôi đã làm với ssh-agentbài viết.
ssgao

Điều này nghe có vẻ như hành vi bình thường: bạn cần nhập cụm mật khẩu của bạn một lần mỗi phiên để mở khóa. Nếu khóa được mở khóa được lưu trữ ở đâu đó, điều này sẽ đánh bại mục đích có cụm mật khẩu trên khóa - bất kỳ ai có được khóa mở khóa được lưu trữ đều có thể sử dụng nó. Bạn có mong đợi điều gì khác không? Bạn có muốn khóa được lưu trữ trong bộ nhớ sau khi bạn đăng xuất để nó có sẵn cho đến lần khởi động lại tiếp theo không?
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời:


6

Tôi đã cài đặt móc khóa.

sudo apt-get cài đặt móc khóa

Nếu bạn đang chạy bash, bạn cần thêm một vài lệnh vào .bash_profile Nếu bạn không có .bash_profile, hãy tạo một lệnh trong thư mục nhà của bạn. Thêm các dòng sau:

### START-Keychain ###
# Let  re-use ssh-agent and/or gpg-agent between logins
/usr/bin/keychain $HOME/.ssh/id_dsa
source $HOME/.keychain/$HOSTNAME-sh
### End-Keychain ###

Khi bắt đầu một ngày làm việc tôi sẽ đăng nhập. Khi tôi mở một thiết bị đầu cuối, tôi sẽ được nhắc một lần cho cụm mật khẩu của mình. Đối với tất cả các thiết bị đầu cuối và kết nối mới khác, tôi sẽ không được hỏi lại cụm mật khẩu của mình nữa.


4
Làm thế nào khác với gõ ssh-addtrong thiết bị đầu cuối?
ssgao

ya nhưng sau đó bạn sẽ phải gõ ssh-add mọi lúc ... làm điều này sẽ cắt bỏ 2 bước của bạn -> eval "$ (ssh-agent)" và ssh-add
abhishek

1

Những gì bạn đang tìm kiếm là kém an toàn, nhưng nó có thể được thực hiện bằng cách sử dụng xác thực khóa chung mà không cần ssh-agent. Tùy chọn an toàn hơn là sử dụng xác thực khóa chung với cụm mật khẩu trong khi tắt xác thực mật khẩu trên máy chủ ssh, nhưng đây không phải là điều bạn yêu cầu. Xem liên kết ở dưới cùng của câu trả lời này để biết hướng dẫn nếu bạn quyết định làm điều này thay vào đó.

Để sử dụng ssh mà không được yêu cầu bất kỳ cụm mật khẩu nào, bạn cần tạo cặp khóa của mình trong khi để trống trường cụm mật khẩu.

Để kiểm tra xem bạn đã tạo cặp khóa chưa, hãy kiểm tra các tệp id_rsa và id_rsa.pub trong thư mục ~ / .ssh của bạn. Nếu chúng đã ở đó, bạn có thể xóa chúng hoặc di chuyển chúng để tạo ra một cặp khóa mới.

Lưu ý, nếu bạn xóa chúng, bạn sẽ mất quyền truy cập vào bất kỳ máy chủ ssh nào bạn đang sử dụng sau đó các khóa cũ để xác thực nếu tắt xác thực mật khẩu trên máy chủ.

Để tạo một cặp khóa mới, hãy chạy lệnh sau:

ssh-keygen -t rsa

Chấp nhận vị trí mặc định cho các phím và để trống cụm mật khẩu.

Để cung cấp khóa công khai của bạn cho máy chủ ssh mà bạn muốn kết nối, hãy sử dụng lệnh sau:

ssh-copy-id -i ~/.ssh/id_rsa.pub username@remotehost

Sau khi hoàn thành các bước này, bạn sẽ có thể đăng nhập vào máy chủ từ xa mà không cần mật khẩu từ máy tính bạn đang sử dụng.

Tham khảo: http://tombfox.com/index.php/2008/02/20/public-key-authentication-for-ssh-ADE-easy/


0

Cách đây một thời gian, tôi đột nhiên bắt đầu được yêu cầu một cụm mật khẩu để mở khóa ssh của mình khi thực hiện git push. Hóa ra, để ngừng yêu cầu một cụm mật khẩu, việc thêm Tác nhân chính SSH (Khóa Gnome: Tác nhân SSH) vào Ứng dụng Khởi động (trong trường hợp của tôi - chỉ để kiểm tra hộp kiểm) là đủ.

nhập mô tả hình ảnh ở đây


Bạn có thể vui lòng mở rộng câu trả lời của bạn với chi tiết hơn về cách làm điều đó và tại sao nó sẽ giải quyết vấn đề trong câu hỏi? Cảm ơn.
Chỉ huy Byte
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.