คำถามติดแท็ก ssh-agent

ssh-agent เป็นกลไกการลงชื่อเพียงครั้งเดียวสำหรับ SSH ที่รวมอยู่ในซอฟต์แวร์ OpenSSH ใช้แท็กนี้สำหรับคำถามเกี่ยวกับวิธีกำหนดค่าและใช้ ssh-agent

16
ฉันจะรัน ssh-add อัตโนมัติได้อย่างไรโดยไม่ต้องใส่รหัสผ่าน?
ฉันต้องการสื่อสารระหว่างคอมพิวเตอร์หลายเครื่องบนเครือข่ายของฉัน (สแตติกอีเธอร์เน็ต) ผ่าน SSH เพื่อที่จะทำเช่นนั้นฉันจำเป็นต้องเรียกใช้ ssh-add ทุกครั้งที่ฉันเข้าสู่ระบบบนเครื่องที่เฉพาะเจาะจงฉันจะทำมันได้อย่างไรเพื่อให้มันตั้งขึ้นหนึ่งครั้งและไม่ถามฉันสำหรับวลีรหัสผ่านทุกครั้งที่ฉันเข้าสู่ระบบหรือรีบูต เครื่องของฉัน ฉันรู้ว่ามีวิธีที่คุณควรเพิ่มบางบรรทัดในbash_profileไฟล์ แต่ฉันยังต้องพิมพ์รหัสผ่านทุกครั้งที่ฉันรีบูต / เข้าสู่ระบบไปยังเครื่องเฉพาะ if [ -z "$SSH_AUTH_SOCK" ] ; then eval `ssh-agent -s` ssh-add fi
247 ssh  ssh-agent 


8
ssh-add บ่น: ไม่สามารถเปิดการเชื่อมต่อกับตัวแทนการตรวจสอบของคุณ
ฉันพยายามssh-addทำงานกับ RaspberryPi ที่รัน Raspbian อยู่ ฉันสามารถเริ่มต้นssh-agentเมื่อฉันให้ออกต่อไปนี้ใน terminal: SSH_AUTH_SOCK=/tmp/ssh-06TcpPflMg58/agent.2806; export SSH_AUTH_SOCK; SSH_AGENT_PID=2807; export SSH_AGENT_PID; echo Agent pid 2807; ถ้าฉันวิ่งps aux | grep sshฉันจะเห็นว่ามันกำลังวิ่งอยู่ จากนั้นฉันพยายามเรียกใช้ssh-addเพื่อเพิ่มข้อความรหัสผ่านที่สำคัญของฉันและฉันได้รับสิ่งต่อไปนี้: Could not open a connection to your authentication agent. ความคิดใด ๆ

3
ssh-add ไม่คงอยู่ระหว่างการรีบูต
ฉันเพิ่มคีย์ ssh ไปยังตัวแทนโดย: $ ssh-add ~/.ssh/id_rsa_mac Identity added: /Users/alex/.ssh/id_rsa_mac (/Users/alex/.ssh/id_rsa_mac) หลังจากรีบูตเอเจนต์ไม่ได้เพิ่มคีย์นี้อีกต่อไป: $ ssh-add -l The agent has no identities. ทำไมสิ่งนี้ถึงเกิดขึ้น
150 ssh  osx  ssh-agent 

1
ทำไมเอาท์พุตของ ssh-agent
ในการวิ่งssh-agentฉันต้องใช้ eval $(ssh-agent) ทำไมฉันถึงต้องevalส่งออกของssh-agent? ทำไมมันไม่ได้ออกแบบมาเพื่อที่ฉันจะสามารถเรียกใช้มันได้ หมายเหตุ: ลบ Backticks (`) ออกเนื่องจากถูกเลิกใช้แล้ว คุณสามารถอ่านเพิ่มเติมได้ที่นี่เช่น
67 shell  ssh  ssh-agent  eval 

2
วิธีเปิดใช้งานการแลกเปลี่ยนคีย์ diffie-hellman-group1-sha1 บน Debian 8.0?
ฉันไม่สามารถ ssh ไปยังเซิร์ฟเวอร์ที่ขอdiffie-hellman-group1-sha1วิธีแลกเปลี่ยนกุญแจได้: ssh 123.123.123.123 Unable to negotiate with 123.123.123.123 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1 วิธีการเปิดใช้งานdiffie-hellman-group1-sha1วิธีการแลกเปลี่ยนที่สำคัญใน Debian 8.0 ฉันได้ลอง (ตามที่เสนอที่นี่ ) เพื่อ เพิ่มบรรทัดต่อไปนี้ในของฉัน /etc/ssh/ssh_config KexAlgorithms diffie-hellman-group1-sha1,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1 Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr สร้างคีย์ใหม่ด้วย ssh-keygen -A รีสตาร์ท ssh ด้วย service ssh restart แต่ยังคงได้รับข้อผิดพลาด

3
ฉันจะทำให้ ssh-agent ทำงานได้ในเทอร์มินัลทั้งหมดได้อย่างไร
ฉันได้ตั้งค่าล็อกอินอัตโนมัติ (รหัสผ่านน้อยกว่า) ssh ไปยังเซิร์ฟเวอร์บางเครื่องโดยใช้ ssh-copy-id ssh-agentทำงานได้จากเทอร์มินัลที่ทำงานอยู่เท่านั้น ฉันssh-addจะทำงานในอาคารผู้โดยสารทั้งหมดได้อย่างไร โดยธรรมชาติแล้วฉันไม่ต้องการคีย์ SSH หากไม่มีข้อความรหัสผ่าน
27 ssh  ssh-agent 

3
ssh-add กลับมาพร้อมกับ:“ ข้อผิดพลาดในการเชื่อมต่อกับตัวแทน: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว”
ssh-add เพียงอย่างเดียวไม่ทำงาน: Error connecting to agent: No such file or directory ฉันจะใช้เครื่องมือนั้นได้อย่างไร
24 linux  ssh  ssh-agent 

1
วิธีการใช้ ssh-agent พร้อมกับหลายคีย์ (ถูกต้อง) และยังเลือกที่จะใช้?
สมมติว่ามีสองปุ่มAและBทั้งสองอย่างนั้นถูกต้องสำหรับuser@hostการตรวจสอบคีย์สาธารณะ เนื่องจากauthorized_keysมีการกำหนดค่าสำหรับพฤติกรรมที่แตกต่างกันขึ้นอยู่กับคีย์~/.ssh/configบนไคลเอนต์ใช้สิ่งที่ชอบ Host A.host HostName host User user IdentityFile ~/.ssh/A Host B.host HostName host User user IdentityFile ~/.ssh/B มันใช้งานได้ดี อย่างไรก็ตามขณะที่ฉันใช้ssh-agentและเพิ่มทั้งสองคีย์AและB(เช่นเพื่อป้อนข้อความรหัสผ่านของพวกเขาที่เข้าสู่ระบบแทนเมื่อฉันโทรหาที่เกี่ยวข้องssh A.hostหรือssh B.host) การเชื่อมต่อจะใช้ id เดียวกันสำหรับโฮสต์เสมือนทั้งสอง มีวิธีใดที่จะระบุว่าควรใช้คีย์ใดที่เก็บไว้โดยไม่ต้องลบคีย์อื่น ๆsshssh-agent
20 ssh  ssh-agent 

4
ฉันจะแก้ปัญหาตัวแทน SSH นี้ได้อย่างไร
ฉันใช้ Linux Mint และไม่สามารถรับ gnome-keyring เพื่อปลดล็อกโดยอัตโนมัติเมื่อเข้าสู่ระบบดูเหมือนว่า อาการของปัญหาของฉันเป็นดังนี้: $ ssh-add Identity added: /home/me/.ssh/id_rsa (/home/me/.ssh/id_rsa) $ git pull WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-Nmf3J3/pkcs11: No such file or directory ฉันจะทำให้มันเป็น git ที่สามารถผลัก / ดึงโดยไม่ต้องใส่ข้อความรหัสผ่านจากฉันได้อย่างไร ฉันรู้ว่ามีหลายสิ่งที่นี่กับ gnome-keyring และ ssh-agent แต่ไม่สามารถตอกมันลงได้ การทำงานssh-addในระหว่างเซสชันหมายความว่าฉันจะไม่ขอรหัสผ่านของฉันอีกต่อไปสำหรับ SSH / git ปัญหาคือฉันจะต้องทำงานssh-addในแต่ละเซสชั่น - ฉันต้องพลาดวิธีปลดล็อคกุญแจของ Gnome เมื่อเข้าสู่ระบบ $ export | grep …

4
มี ssh-add เงียบถ้ามีกุญแจอยู่แล้ว
ฉันต้องการที่จะวางssh-add /path/to/special_keyที่ด้านบนของสคริปต์ วิธีนี้ใช้งานได้ดี แต่จะพร้อมท์ให้ใส่ข้อความรหัสผ่านเสมอ นี่เป็นเรื่องแปลกและน่ารำคาญเล็กน้อยเพราะมันยังถามรหัสผ่านถึงแม้ว่าจะssh-add -lแสดงว่ามีการเพิ่มรหัสแล้ว มีวิธีบอกหรือไม่ว่า: "เพิ่มรหัสนี้และถามวลีรหัสผ่านหากยังไม่ได้เพิ่มหรือไม่ทำอะไรเลย"

3
วิธีการขอรหัสผ่านกุญแจ SSH ครั้งเดียวและเมื่อจำเป็นเท่านั้น?
(ฉันได้อ่านคำถามมากมายในเว็บไซต์นี้ที่มีลักษณะเกี่ยวข้องและฉันเชื่อว่านี่เป็นคำถามใหม่อย่างแท้จริง) ฉันมีกุญแจจำนวนมากในเซิร์ฟเวอร์จำนวนมากและพวกเขาทั้งหมดได้รับการป้องกันด้วยวลีรหัสผ่าน ฉันชอบป้อนวลีรหัสผ่านประมาณเท่าที่ฉันต้องการป้อนรหัสผ่านซึ่งเป็นประสิทธิภาพการทำงานที่แท้จริง คำสั่งssh-agent + ssh-addสามารถใช้บนเชลล์ล็อกอินเพื่อหมายความว่าคุณจะต้องป้อนข้อความรหัสผ่านของคุณเพียงครั้งเดียวเมื่อเข้าสู่ระบบ พวงกุญแจสามารถใช้เพื่อเก็บเอเจนต์ ssh- ยังมีชีวิตอยู่นอกเหนือจากการออกจากระบบดังนั้นตัวอย่างเช่นคุณสามารถมีมันดังนั้นคุณจะต้องป้อนข้อความรหัสผ่านเพียงครั้งเดียวเมื่อบูตหรือคุณสามารถทำให้มันมีชีวิตอยู่เป็นเวลาหนึ่งชั่วโมง ปัญหาที่ฉันมีคือทั้งสองโซลูชั่นเหล่านี้มักจะเริ่มต้นในการเข้าสู่ระบบเชลล์ (เช่น.zshrc) พึ่งพาฉันป้อนข้อความรหัสผ่านของฉันเมื่อฉันเข้าสู่ระบบแม้ว่าฉันจะไม่ต้องการปลดล็อค (ฉันไม่มีความสุขกับพวงกุญแจที่ทำให้ตัวแทนมีชีวิตอยู่อย่างไม่มีกำหนด) สิ่งที่ฉันต้องการคือการถามรหัสผ่าน (สำหรับตัวแทน) เมื่อจำเป็นเท่านั้น ดังนั้นฉันสามารถเข้าสู่เซิร์ฟเวอร์ A ทำบางสิ่งจากนั้น ssh ไปยังเซิร์ฟเวอร์ B และณ จุดนั้นขอรหัสผ่าน ทำสิ่งต่าง ๆ บนเซิร์ฟเวอร์ B ออกจากระบบ กลับไปที่ A ทำอะไรเพิ่มอีก ssh ไปที่ B อีกครั้งและไม่ต้องการข้อความรหัสผ่านของฉัน (มันเป็นตัวแทนโดย) ฉันทราบว่าสิ่งนี้เป็นไปได้บนเดสก์ท็อปแบบกราฟิกเช่น Gnome คุณจะได้รับป๊อปอัพเพื่อขอข้อความรหัสผ่านเพื่อปลดล็อคกุญแจส่วนตัวของคุณทันทีที่คุณลองใช้ ssh ดังนั้นนี่คือสิ่งที่ฉันเป็น แต่มาจากคอนโซล
15 ssh  ssh-agent 

2
วิธีเริ่มและใช้ ssh-agent เป็น systemd service?
วิธีการเริ่มssh-agentเป็นบริการsystemd ? มีคำแนะนำบางอย่างในเน็ต แต่พวกเขายังไม่สมบูรณ์ วิธีเพิ่มคีย์ที่ไม่เข้ารหัสโดยอัตโนมัติหากบริการssh-agentเริ่มต้นได้สำเร็จ อาจเป็นการเพิ่มคีย์จากรายการ~/.ssh/.session-keysจะดี วิธีการตั้งค่าSSH_AUTH_SOCKในเซสชั่นการเข้าสู่ระบบใด ๆ หลังจากนั้น? วิธีที่ถูกต้องที่สุดคือการส่งจากบริการssh-agentไปยังบริการsystemd-logind (ไม่ทราบว่าเป็นไปได้หรือไม่) /etc/profileวิธีที่ไร้เดียงสาธรรมดาเป็นเพียงการเพิ่มเข้าไป

4
ssh-agent ไม่ได้รับการตั้งค่า (SSH_AUTH_SOCK, SSH_AGENT_PID ไม่ได้ตั้งค่า env vars)
ฉันตั้งค่าบัญชีผู้ใช้ใหม่สำหรับเพื่อนใน Kubuntu 12.04 เมื่อเขาใช้sshเขาได้รับข้อผิดพลาดนี้: ไม่สามารถเปิดการเชื่อมต่อกับตัวแทนการตรวจสอบความถูกต้องของคุณ เรากำลังทำงานsshในสคริปต์ทุบตี หลังจากดูสิ่งต่าง ๆ มากมายที่สามารถนำไปสู่ข้อผิดพลาดนั้นฉันได้พบกับวิธีแก้ไขปัญหานี้: $ eval `ssh-agent -s` $ ssh-add ~/.ssh/some_id_rsa จากนั้นเขาสามารถเรียกใช้sshคำสั่ง (และสคริปต์ทุบตี) ตามที่คาดไว้ ก่อนรันสองคำสั่งตัวแปร env ไม่ได้ถูกตั้งค่าในเทอร์มินัล: $ echo $SSH_AGENT_PID $ echo $SSH_AUTH_SOCK $ หลังจากรันคำสั่งตัวแปร env จะถูกตั้งค่าตามที่คาดไว้ อย่างไรก็ตามพวกเขาไม่ได้อยู่ที่การตั้งค่า (เช่นในเปลือกที่แตกต่างกันหรือหลังจากรีบูตเครื่อง) ฉันต้องการทราบวิธีการตั้งค่าคอมพิวเตอร์ของเขาเพื่อที่เขาจะได้ไม่ต้องเรียกใช้ทั้งสองคำสั่งเพื่อตั้งค่าตัวแปร env ฉันไม่จำเป็นต้องเรียกใช้บนคอมพิวเตอร์ของฉัน (เคย) จนถึงตอนนี้ฉันไม่เห็นสิ่งที่แตกต่างระหว่างเครื่องของเรา ฉันเห็นข้อมูลนี้ในหน้า man แต่ไม่ได้บอกฉันว่า Ubuntu ปกติตั้งค่าตัวแทนโดยอัตโนมัติหรือสิ่งที่เกิดขึ้นบนเครื่องของเพื่อนของฉันเพื่อที่จะไม่ทำงานสำหรับเขา มีสองวิธีหลักในการตั้งค่าเอเจนต์: วิธีแรกคือเอเจนต์เริ่มคำสั่งย่อยใหม่ซึ่งตัวแปรสภาพแวดล้อมบางอย่างจะถูกส่งออกเช่น ssh-agent xterm & ประการที่สองคือเอเจนต์พิมพ์คำสั่งเชลล์ที่ต้องการ …
13 bash  ssh  kubuntu  ssh-agent 

2
gpg-agent ปฏิเสธคีย์ SSH ด้วยการรายงาน ssh-add“ การดำเนินการของตัวแทนถูกปฏิเสธ”
ฉันใช้ 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. …

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