Tôi đang thực hiện một số nghiên cứu về chủ đề này và tôi có thể cung cấp cho bạn một số gợi ý, nhưng tôi chưa tìm được cách nào để nó hoạt động.
Khỉ
Monkeysphere có vẻ là một dự án rất thú vị, nhưng tôi đã không thể biên dịch nó trong Mac OS X mà không làm tắc nghẽn không gian đĩa trống nhỏ của tôi với MacPorts.
Sử dụng gpgkey2ssh
Cách đầu tiên tôi khuyên bạn nên thử là tạo một mục ủy quyền tương thích từ id khóa của bạn (ví dụ: BFB2E5E3) với:
gpgkey2ssh BFB2E5E3 | tee -a ~/.ssh/authorized_keys
Ở đây tôi đã thêm nó vào localhost của mình vì tôi đã chạy một máy chủ ssh cho mục đích thử nghiệm, nhưng tất nhiên bạn nên thêm nó vào máy chủ đích ~/.ssh/authorized_keys
. Tiếp theo, bạn cần yêu cầu SSH sử dụng phần riêng tư của khóa này trong khi xác thực, nhưng chỉ cần xuất phiên bản bọc thép ASCII của cặp khóa không hoạt động:
gpg --armor --export-secret-key BFB2E5E3! |tee ~/.ssh/id_rsa
gpg --armor --export BFB2E5E3! | tee ~/.ssh/id_rsa.pub
chmod 400 ~/.ssh/id_rsa
ssh localhost
Sử dụng tác nhân gpg
gpg-agent
có tùy chọn --enable-ssh-support
cho phép nó sử dụng nó như một sự thay thế thả vào cho người nổi tiếng ssh-agent
. Tôi đã đọc một số người đang cố gắng thêm thông qua ssh-add
khóa GPG của họ sau khi khởi chạy gpg-agent
theo cách này:
gpg-agent --enable-ssh-support --daemon
gpg --armor --export-secret-key BFB2E5E3! | tee ~/.gnupg/exported-keys/BFB2E5E3_sec.asc
ssh-add ~/.gnupg/exported-keys/BFB2E5E3_sec.asc
Nhưng tôi không nghĩ rằng điều này sẽ làm việc. Trang web của đại lý gpg nói:
Khóa SSH, được sử dụng thông qua tác nhân, cần được thêm vào tác nhân gpg ban đầu thông qua tiện ích ssh-add. Khi một khóa được thêm vào, ssh-add sẽ hỏi mật khẩu của tệp khóa được cung cấp và gửi tài liệu khóa không được bảo vệ cho tác nhân; điều này làm cho tác nhân gpg yêu cầu một cụm mật khẩu, được sử dụng để mã hóa khóa mới nhận và lưu trữ nó trong một thư mục cụ thể của tác nhân gpg.
Vì vậy, có vẻ như gpg-agent
nên được sử dụng như một biện pháp bổ sung để bảo vệ các khóa SSH của bạn bằng mã hóa GPG.
Chuyển đổi khóa GPG sang OpenSSH
Jérôme Pouiller trong blog của mình viết rằng tiện ích Gpgsm có thể xuất các khóa và chứng chỉ trong PCSC12; sau đó chúng có thể được OpenSSH sử dụng:
gpgsm -o secret-gpg-key.p12 --export-secret-key-p12 0xXXXXXXXX
openssl pkcs12 -in secret-gpg-key.p12 -nocerts -out gpg-key.pem
chmod 600 gpg-key.pem
cp gpg-key.pem ~/.ssh/id_rsa
ssh-keygen -y -f gpg-key.pem > ~/.ssh/id_rsa.pub
Nhưng tôi chưa tìm được cách nào để gpgsm
chấp nhận bàn phím gpg của mình.
Những thứ khác bạn có thể thử
SSH có -I
tùy chọn chỉ định thư viện chia sẻ PKCS # 11 ssh
nên sử dụng để liên lạc với mã thông báo PKCS # 11 cung cấp khóa RSA riêng của người dùng.
ssh-keygen
có thể sử dụng khóa chung hoặc khóa riêng RFC4716 / SSH2, khóa chung PEM PKCS8 và khóa chung PEM để tạo khóa riêng (hoặc chung) tương thích OpenSSH bằng cách sử dụng -i
và -m
tùy chọn.
Tuy nhiên, tôi không thể tìm ra cách để kết hợp tất cả lại.
flag
liên kết dưới câu hỏi), thay vì đăng cùng một câu trả lời hai lần. Cảm ơn đã trả lời chi tiết!