Làm cách nào để sử dụng ssh-agent.exe mà không có cygwin cho khóa riêng được bảo vệ bằng cụm từ?


2

Tôi muốn truy cập dịch vụ SSH với khóa riêng được bảo vệ bằng cụm từ trong Windows bằng ssh-agent.exe.

Cho đến nay tôi có thể sử dụng ssh-agent.exe bằng cách thay đổi cài đặt môi trường trong tài khoản nhà của mình theo cách thủ công để đặt biến môi trường như sau:

SSH_AUTH_SOCK = %TEMP%\ssh-Co312dEaE\agent.1208

Biến môi trường không được đặt trong hộp cmd hoặc quá trình khác truy cập ssh.exe có thể không nhận ra biến môi trường. Nó phải đặt trong tài khoản người dùng Windows.

Cài đặt ở trên cần làm lại một lần nữa sau khi khởi động lại máy.

Có cách nào tốt để tự động hóa việc khởi chạy ssh-agent và đặt SSH_AUTH_SOCK trong ngữ cảnh của phiên Windows gốc không?

Câu trả lời:


0

Khi bạn chạy, ssh-agentbạn nên lưu các biến SSH_AUTH_SOCKSSH_AGENT_PIDmôi trường vào một tệp và sử dụng chúng để xem tác nhân đã chạy chưa.

Bạn cần chạy cygwin một lần để khởi động tác nhân, nhưng sau đó nó không phải chạy. Điều này có thể có thể được thiết lập như là một dịch vụ là tốt.

Để chạy ssh-agent.exe trong nền tôi đã thêm vào như sau .bashrc

#
# Store env variables
run_ssh_agent="${HOME}/.ssh/agent-for-${HOSTNAME}.pid"
#
# Include env variables if they exist
[ -f "$run_ssh_agent" ] && . "$run_ssh_agent" >/dev/null 2>&1
#
# Test if agent is running
if kill -0 $SSH_AGENT_PID > /dev/null 2>&1; then
    #
    # Agent is running
    echo Agent pid $SSH_AGENT_PID
else
    #
    # Agent is not running, launch it and store env variables
    ssh-agent -s > "$run_ssh_agent"
    . "$run_ssh_agent"
    #
    # Add private keys
    ssh-add
fi
#
# List loaded identities
ssh-add -l

Điều này không hoàn thành những gì bạn đang tìm kiếm (chạy ssh-agent mà không có cygwin), nhưng nó hoạt động hoàn hảo để lưu trữ các khóa trong bộ nhớ.


0

Tôi đã tạo một tập lệnh khá liên quan cho Windows cmd.exe cùng với một bản hack registry có thể được sử dụng để làm cho nó tự động chạy trong (hầu hết) bao giờ lệnh shell được khởi chạy.

https://github.com/ericblade/ssh-agent-cmd

Về cơ bản, nó thực hiện những điều tương tự như một kịch bản Unix để làm điều tương tự .. ngoại trừ việc nó đặt một tệp ổ cắm cụ thể sẽ được sử dụng, thay vì cố gắng phân tích đầu ra của tác nhân ssh ..

100% windows cmd script ngoại trừ ssh, ssh-agent và ssh-add.

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.