gpg-agent ปฏิเสธคีย์ SSH ด้วยการรายงาน ssh-add“ การดำเนินการของตัวแทนถูกปฏิเสธ”


12

ฉันใช้ openssh7.5p1 และ gnupg 2.1.21 บน arch linux (นี่เป็นเวอร์ชันเริ่มต้นที่มาพร้อมกับ arch) ฉันต้องการใช้gpg-agentเป็นตัวแทน ssh ฉันใส่สิ่งต่อไปนี้ในของฉัน~/.gnupg/gpg-agent.conf:

pinentry-program /usr/bin/pinentry-qt
enable-ssh-support

Arch เริ่มต้น gpg-agent จาก systemd โดยอัตโนมัติดังนั้นฉันจึงตั้งค่า

export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh"

เมื่อฉันเรียกใช้ssh-add -lจะไม่มีการระบุตัวตนและpsรายงานgpg-agent --supervisedกระบวนการตามที่ฉันคาดหวัง

น่าเสียดายที่เมื่อฉันทำงานssh-addไม่ว่าจะเป็นประเภทปุ่มใดมันไม่ทำงาน นี่คือตัวอย่างของวิธีที่ฉันพยายาม dsa:

$ ssh-keygen -f testkey -t dsa -N ''
Generating public/private dsa key pair.
Your identification has been saved in testkey.
Your public key has been saved in testkey.pub.
$ ssh-add testkey
Could not add identity "testkey": agent refused operation

ฟังก์ชัน gpg อื่น ๆ ทั้งหมดทำงานอย่างถูกต้อง (เข้ารหัส / ถอดรหัส / เซ็นชื่อ) นอกจากนี้ปุ่มที่ฉันสร้างให้ทำงานได้ดีถ้าฉันใช้พวกเขาโดยตรงกับ ssh และพวกเขาทำงานอย่างถูกต้องถ้าฉันเรียกใช้ssh-agentที่มาพร้อมกับ openssh

เอกสารบอกว่าssh-addควรเพิ่มคีย์~/.gnupg/sshcontrolแต่เห็นได้ชัดว่าไม่มีอะไรเกิดขึ้น

คำถามของฉัน: อะไรคือวิธีที่ง่ายที่สุดในการโหลดที่สำคัญที่สร้างโดย openssh ของssh-keygenลงไปgpg-agentและคนได้โปรดตัดและวางขั้วเซสชั่นแสดงให้เห็นว่างานนี้หรือไม่?


คำตอบที่ยอมรับได้ช่วยฉันขอบคุณสำหรับการตั้งคำถามนี้ สิ่งนี้เกิดขึ้นทุกขณะแล้วสำหรับฉันมีวิธีแก้ปัญหาถาวรหรือไม่
gf_

คำตอบ:


27

เห็นได้ชัดว่าคำตอบคือให้ทำงาน:

echo UPDATESTARTUPTTY | gpg-connect-agent

ฉันมีความคิดว่าทำไมโปรแกรม pinentry ทำงานที่ดีสำหรับการใช้งานอื่น ๆ เช่นการถอดรหัสไฟล์ไม่ได้ ssh-addแต่ไม่ได้ทำงานให้

ขณะนี้ใช้งานได้ แต่ก็สร้างสำเนาของรหัสส่วนตัว ssh ที่ไม่แสดงขึ้นมาgpg -Kvและดูเหมือนจะไม่อนุญาตให้คุณเปลี่ยนข้อความรหัสผ่านในรหัสส่วนตัวของคุณ (เนื่องจากคุณไม่สามารถแก้ไขได้--edit-key) . โดยทั่วไปแล้วฉันค่อนข้างพึงพอใจกับวิธีการที่gpg-agentจะมองเห็นความลับของคุณในระดับต่ำ หากคุณตอบคำถามนี้เพราะคุณหวังว่าgpg-agentอาจเป็นทางเลือกที่ดีกว่าssh-agentฉันควรแนะนำให้คุณssh-agentลองตอบคำถามแทน เหตุผลหลักที่คุณชอบgpg-agentคือถ้าคุณต้องการใช้สมาร์ทการ์ด


คุณพบคำตอบนี้จากที่ไหน มันใช้งานได้ดี!
CMCDragonkai

ขอบคุณสำหรับสิ่งนี้ได้ผลสำหรับฉัน คุณทำสิ่งนี้เป็นประจำหรือไม่? ในแต่ละการบูท / ล็อกอิน? มีความคิดเกี่ยวกับการแก้ไข "เหมาะสม" หรือไม่?
gf_


2

ในกรณีของฉันปัญหาคือโปรแกรม pinentry ที่ใช้ ฉันใช้ pinentry-emacs ดูเหมือนว่ามันจะไม่จัดการกับหน้าต่างพรอมต์ข้อความฟิลด์คู่ที่ssh-addทริกเกอร์เมื่อใช้กับ gpg-agent

การลบ pinentry-emacs และการติดตั้ง pinentry GTK สามารถแก้ไขปัญหาได้ที่นี่


ในที่สุดก็แก้ปัญหาของฉันหลังจากหาแหล่งที่มามากมายซึ่งบอกให้ฉันอัพเดต tty เริ่มต้น
วิลเลียม Rosenbloom
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.