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

SSH-agent เป็นโปรแกรมที่ให้วิธีการที่ปลอดภัยในการจัดเก็บข้อความรหัสผ่านของไพรเวตคีย์ที่ใช้ในการเชื่อมต่อ SSH

17
การแชร์ 'ssh-agent' เดียวกันระหว่างการเข้าสู่ระบบหลายครั้ง
มีวิธีที่สะดวกเพื่อให้แน่ใจว่าการเข้าสู่ระบบทั้งหมดจากผู้ใช้ที่ได้รับ (เช่นฉัน) ใช้ ssh-agent เดียวกันหรือไม่? ฉันแฮกสคริปต์เพื่อให้งานนี้ใช้เวลาส่วนใหญ่ แต่ฉันสงสัยว่าตลอดมีวิธีที่จะทำสิ่งที่ฉันเพิ่งพลาด นอกจากนี้ตั้งแต่นั้นมามีความก้าวหน้าอย่างมากในด้านเทคโนโลยีคอมพิวเตอร์เช่นเว็บไซต์นี้ ดังนั้นเป้าหมายที่นี่ก็คือ เมื่อใดก็ตามที่ฉันเข้าสู่กล่องไม่ว่าจะผ่าน SSH หรือในเซสชันกราฟิกเริ่มต้นจาก gdm / kdm / etc หรือที่คอนโซล: หากชื่อผู้ใช้ของฉันไม่มีการssh-agentทำงานอยู่ในขณะนี้หนึ่งจะเริ่มต้นตัวแปรสภาพแวดล้อมที่ส่งออกและssh-addเรียกว่า มิฉะนั้นพิกัดของตัวแทนที่มีอยู่จะถูกส่งออกในตัวแปรสภาพแวดล้อมของเซสชันการเข้าสู่ระบบ สิ่งอำนวยความสะดวกนี้มีค่าโดยเฉพาะอย่างยิ่งเมื่อใช้กล่องที่เป็นปัญหาเป็นจุดถ่ายทอดเมื่อsshเข้าไปในกล่องที่สาม ในกรณีนี้มันหลีกเลี่ยงการพิมพ์ข้อความรหัสผ่านของไพรเวตคีย์ทุกครั้งที่คุณทำเช่นนั้นgit pushหรือต้องการทำอะไรบางอย่าง สคริปต์ที่ให้ไว้ด้านล่างทำสิ่งนี้ได้อย่างน่าเชื่อถือแม้ว่ามันจะไม่เรียบร้อยเมื่อ X เกิดข้อผิดพลาดและฉันก็เริ่มเซสชั่นกราฟิกอื่น ในกรณีนั้นอาจมีความรุนแรงอื่น ๆ เกิดขึ้น นี่คือสคริปต์ที่ไม่ดีของฉัน ฉันมาจากที่.bashrcนี่ # ssh-agent-procure.bash # v0.6.4 # ensures that all shells sourcing this file in profile/rc scripts use the same ssh-agent. …
61 ssh  login  session  ssh-agent 

2
ฉันจะลบรายการ ssh-agent (บน Mac OS X) ได้อย่างไร
ฉันใช้ Mac OS X และปรากฏว่าหลังจาก SSHing ไปยังเครื่องหลายเครื่องโดยใช้ไฟล์ข้อมูลประจำตัว'ssh-agent' ของฉันสร้างรหัสประจำตัว / คีย์จำนวนมากและบางครั้งก็มีเครื่องระยะไกลมากเกินไปทำให้พวกเขา เตะฉันออกก่อนที่จะเชื่อมต่อ: ได้รับการยกเลิกการเชื่อมต่อจาก 10.12.10.16: 2: การรับรองความถูกต้องล้มเหลวมากเกินไปสำหรับ cwd มันค่อนข้างชัดเจนว่าเกิดอะไรขึ้นและหน้านี้พูดถึงรายละเอียดเพิ่มเติม: เซิร์ฟเวอร์ SSH อนุญาตให้คุณพยายามตรวจสอบสิทธิ์จำนวนครั้งเท่านั้น ความพยายามในการใช้รหัสผ่านแต่ละครั้งล้มเหลวแต่ละ pubkey / identity ล้มเหลวที่มีให้ ฯลฯ รับหนึ่งในความพยายามเหล่านี้ หากคุณมีคีย์ SSH จำนวนมากในตัวแทนของคุณคุณอาจพบว่าเซิร์ฟเวอร์ SSH อาจเตะคุณออกไปก่อนที่จะอนุญาตให้คุณลองใช้การพิสูจน์ตัวตนด้วยรหัสผ่านได้เลย หากเป็นกรณีนี้มีวิธีแก้ไขปัญหาต่าง ๆ เล็กน้อย การรีบูตจะเป็นการล้างเอเจนต์จากนั้นทุกอย่างจะทำงานได้อีกครั้ง ฉันยังสามารถเพิ่มบรรทัดนี้ลงใน.ssh/configไฟล์ของฉันเพื่อบังคับให้ใช้การตรวจสอบสิทธิ์ด้วยรหัสผ่าน: PreferredAuthentications keyboard-interactive,password อย่างไรก็ตามฉันเห็นบันทึกย่อในหน้าฉันอ้างอิงพูดคุยเกี่ยวกับการลบคีย์จากเอเจนต์ แต่ฉันไม่แน่ใจว่าจะใช้กับ Mac หรือไม่เนื่องจากพวกเขาดูเหมือนจะถูกล้างข้อมูลหลังจากรีบูตอย่างไรก็ตาม มีวิธีง่าย ๆ ในการล้างคีย์ทั้งหมดใน 'ssh-agent' (สิ่งเดียวกันที่เกิดขึ้นเมื่อรีบูต) หรือไม่
60 linux  macos  unix  ssh  ssh-agent 

4
วิธีการทำให้ ssh-agent เพิ่มคีย์ตามความต้องการโดยอัตโนมัติ?
ฉันต้องการเรียกใช้ ssh-agent (พร้อมตัวเลือกอายุการใช้งานสูงสุด) แต่ไม่เพิ่มคีย์ใด ๆ เมื่อเริ่มต้น แต่เพิ่มพวกเขาตามต้องการ เช่นครั้งแรกที่ฉันลงชื่อเข้าใช้เซิร์ฟเวอร์บางเครื่องควรถามวลีรหัสผ่านครั้งต่อไป (เว้นแต่ฉันจะรอนานกว่าหนึ่งชั่วโมง) มันควรเชื่อมต่ออย่างหมดจด: ssh server1 Enter passphrase for key '/home/vi/.ssh/id_dsa': server1> ... ssh server2 server2> # no passphrase this time # wait for lifetime ssh server2 Enter passphrase for key '/home/vi/.ssh/id_dsa': ฉันไม่ต้องการจดจำการเรียกใช้ 'ssh-add' ด้วยตนเองทุกครั้ง (เช่นป้อนวลีรหัสผ่านเพียงเพื่อ ssh และ "โอ้มันไม่ได้จำได้จำต้องพิมพ์ซ้ำ") วิธีกำหนดค่า ssh ให้เพิ่มคีย์ไปยัง ssh-agent โดยอัตโนมัติหากผู้ใช้ระบุข้อความรหัสผ่าน?
51 ssh  ssh-agent 

11
คุณจะได้รับหน้าจอเพื่อเชื่อมต่อกับ ssh-agent ปัจจุบันโดยอัตโนมัติเมื่อติดกับหน้าจอที่มีอยู่อีกครั้งได้อย่างไร?
หากคุณเริ่มเซสชันหน้าจอขณะที่ ssh-agent กำลังทำงาน (จากการส่งต่อตัวแทน ssh -A) การเข้าถึง ssh-agent ทำได้ดี อย่างไรก็ตามหากคุณแยกออกจากเซสชันนั้นให้ออกจากระบบลงชื่อเข้าใช้อีกครั้ง (ด้วยการส่งต่อ ssh-agent) และแนบกับเซสชันหน้าจอของคุณอีกครั้งการเข้าถึง ssh-agent ไม่ทำงาน จะแก้ไขได้อย่างไร?


7
วิธีการใช้คีย์ส่วนตัว SSH เพื่อเข้าสู่ระบบโดยไม่ต้องใส่ข้อความรหัสผ่านทุกครั้งบน Mac OS X Lion?
ฉันใช้ Mac OS X Lion และล็อกอินโฮสต์ระยะไกลผ่าน SSH ทุกวัน แม้ว่าข้อเท็จจริงที่ว่าฉันใช้คู่คีย์ SSH สำหรับการรับรองความถูกต้องระยะไกลและฉันไม่จำเป็นต้องใช้วลีการเข้าสู่ระบบของโฮสต์ทุกเครื่อง แต่ก็ยังน่ารำคาญมากที่เทอร์มินัลขอรหัสผ่านสำหรับการเข้าถึงคีย์ส่วนตัว SSH ของฉัน เพื่อเหตุผลด้านความปลอดภัยฉันคิดว่ารหัสผ่านสำหรับการเข้าถึงคีย์ส่วนตัว SSH นั้นเป็นสิ่งที่จำเป็นต้องมี มีวิธีที่ทำให้เครื่องขอวลีเพียงครั้งเดียวเมื่อเริ่มต้นแล้วจดจำได้และใช้กุญแจส่วนตัวของฉันโดยอัตโนมัติในรอบ SSH ภายหลัง? มีสคริปต์ที่เรียกว่าkeychainทำงานได้ดีบน Gentoo Linux แต่ฉันไม่เคยคิดออกใน Mac OS X Lion ยิ่งไปกว่านั้นยังมีเงื่อนไขที่น่ากลัวมากมายเช่นssh-agent, ssh-add. หลังจากอ่านเนื้อหาต่าง ๆ เกี่ยวกับชุดเครื่องมือ SSH เหล่านั้นและทำการทดลองที่ทำให้ผิดหวังฉันก็สับสนมากขึ้น ดังนั้นฉันมาที่ StackExchange ค้นหาคำแนะนำเกี่ยวกับคำถามต่อไปนี้ อะไรคือssh-agent, ssh-addและkeychain, Keychain Access.appพวกเขามีปฏิสัมพันธ์กันอย่างไร? ฉันจะป้อนวลีรหัสผ่านสำหรับคีย์ส่วนตัว SSH ของฉันหนึ่งครั้งได้ที่ล็อกอินและใช้อย่างอิสระในการสร้างเซสชัน SSH ในภายหลัง เอ่อ ... เกิดอะไรขึ้นเนี่Keychain …

2
ต้องการการกำหนดค่าเพิ่มเติมสำหรับการส่งต่อ ssh-agent?
คู่มือนี้ทำงานได้อย่างยอดเยี่ยมในการอธิบายว่า ssh-agent ทำงานได้อย่างไรในหลาย ๆ ระบบ ฉันต้องการตั้งค่าการส่งต่อตามที่อยู่ในไดอะแกรมชุดสุดท้าย แต่ฉันมีปัญหาในการติดตามขั้นตอนที่ต้องทำ สำหรับบางเครื่องในเครือข่ายของฉันฉันสามารถ ssh จาก A ถึง B จากนั้น B ถึง C โดยไม่ต้องป้อนรหัสผ่านใบรับรอง อย่างไรก็ตามเครื่องอื่น ๆ ให้ "ไม่สามารถเปิดการเชื่อมต่อกับตัวแทนการตรวจสอบสิทธิ์ของคุณ" (บางครั้ง!) จากนั้นจะไม่ส่งต่อข้อมูลการตรวจสอบสิทธิ์ของฉัน SSHing จากเครื่องหนึ่งไปยังอีกกล่องหนึ่งบนเครือข่ายแจ้งรหัสผ่านส่วนตัวของฉันอีกครั้ง ฉันไม่ได้สร้างเครื่องเหล่านี้ แต่ฉันสามารถจัดการบางอย่างได้ ฉันไม่ทราบแน่ชัดว่าความแตกต่างระหว่าง boxen ที่ทำงานกับอันที่ไม่ - อาจเป็นปัญหาไฟร์วอลล์การกำหนดค่า ssh / ssh-agent / sshd อะไรและฉันไม่เห็นขั้นตอนใด ๆ - คำแนะนำทีละขั้นตอนเฉพาะสำหรับการส่งต่อลอยรอบ 'สุทธิ ฉันแค่ต้องรู้ว่าจะเริ่มไล่ตามปัญหานี้ที่ไหน

3
ข้อผิดพลาด ssh-agent / ssh-add: ไม่สามารถเปิดการเชื่อมต่อกับตัวแทนการตรวจสอบความถูกต้องของคุณ
ฉันพิมพ์ssh-agentและรับข้อมูลต่อไปนี้: SSH_AUTH_SOCK=/tmp/ssh-GqdeT074HLRJ/agent.4670; export SSH_AUTH_SOCK; SSH_AGENT_ID=4671; export SSH_AGENT_PID; echo Agent pid 4671; ฉันพิมพ์ssh-add privkey.pemและรับสิ่งต่อไปนี้: Could not open a connection to your authentication agent มีความคิดเห็นเกี่ยวกับสิ่งที่ฉันทำผิดหรือเปล่า? ฉันพยายามเพิ่มsudoก่อนคำสั่งเหล่านั้นด้วย แต่ได้ผลลัพธ์ใกล้เคียงกัน
20 ssh  ssh-agent 

2
ไม่สามารถลบคีย์ออกจาก ssh-agent แม้การรีบูตเครื่องก็ไม่ได้ช่วยอะไร
เมื่อไม่นานมานี้ฉันสังเกตเห็นว่ามีสามปุ่มใน ssh-agent ของฉันที่ฉันไม่สามารถลบได้ ssh-add -lแสดงให้เห็นสามปุ่ม; ฉันวิ่งssh-add -Dแล้วก็บอกว่า "ตัวตนทั้งหมดถูกลบ"; แต่ในทันใดนั้นก็ssh-add -lแสดงปุ่มสามดอกเหมือนกัน หากฉันออกจากระบบแล้วกลับเข้าสู่ระบบกุญแจจะยังคงอยู่ ถ้าฉันรีบูทเครื่องคีย์ก็ยังอยู่ที่นั่น หากฉันลบไดเรกทอรีพวงกุญแจ/tmpฉันจะไม่สามารถเชื่อมต่อได้อีกต่อไปssh-agentแต่เมื่อออกจากระบบและกลับเข้าสู่ระบบกุญแจจะกลับมา พวกเขาคงกระพัน กุญแจคือของฉันไม่ใช่ของคนอื่นเท่าที่ฉันจะบอกได้ ฉันสามารถเข้าถึงบริการในท้องถิ่นของฉันกับพวกเขาได้ แต่เมื่อฉันเพิ่มหนึ่งในคีย์อีกครั้งด้วยssh-addทำให้เส้นทางไปยังไฟล์กุญแจส่วนตัวคีย์ใหม่มีลักษณะที่แตกต่างกันในผลลัพธ์ของssh-add -l: 2048 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f /home/jruser/.ssh/jruser-keyname-20110418 (RSA) กับต้นฉบับ: 2048 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f jruser 04/18/2011 keyname (RSA) มีวิธีใดที่จะอธิบายพฤติกรรมนี้อย่างสมเหตุสมผลหรือไม่ ฉันเดาว่ามีสองคำถามจริง ๆ : ปุ่มต่างๆถูกจัดการให้คงอยู่แม้จะรีบูตได้อย่างไร? ความรู้พื้นฐานของฉันเกี่ยวกับการsshแนะนำให้ใช้คีย์ต้องเพิ่มด้วยตนเองเสมอ ทำไมฉันถึงssh-agent -Dโกหกเกี่ยวกับการลบตัวตน?
18 ssh  ssh-agent 

7
ฉันจะทำให้ ssh-agent ทำงานบน ssh และใน tmux (บน OS X) ได้อย่างไร?
ฉันมีการตั้งค่าคีย์ส่วนตัวสำหรับบัญชี GitHub ของฉันข้อความรหัสผ่านที่ฉันเชื่อว่าเก็บไว้ในพวงกุญแจของ OS X แน่นอนฉันจะได้ไม่ต้องพิมพ์ในเมื่อผมเปิดหน้าต่าง terminal ssh git@github.comและป้อน อย่างไรก็ตามเมื่อฉันใช้ bash ในเซสชัน ssh หรือภายใน local ในเซสชัน tmux ฉันต้องพิมพ์ข้อความรหัสผ่านทุกครั้งที่ฉันพยายาม ssh เพื่อ github คำถามนี้แสดงให้เห็นว่ามีปัญหาที่คล้ายกันเกิดขึ้นกับหน้าจอ แต่ฉันไม่เข้าใจปัญหานี้ดีพอที่จะแก้ไขใน tmux นอกจากนี้ยังมีหน้านี้ซึ่งรวมถึงวิธีการแก้ปัญหาที่ค่อนข้างซับซ้อน แต่สำหรับ zsh แก้ไข : ในการตอบสนองต่อคำตอบของ@ Mikelจากสถานีท้องถิ่นฉันได้รับผลลัพธ์ต่อไปนี้: [~] $ echo $SSH_AUTH_SOCK /tmp/launch-S4HBD6/Listeners [~] $ ssh-add -l 2048 [my key fingerprint] /Users/richie/.ssh/id_rsa (RSA) [~] $ typeset -p …
17 macos  ssh  tmux  ssh-agent 

1
การใช้คำสั่ง IdentityFile ใน ssh_config เมื่อมีการใช้ AgentForwarding
เป็นไปได้หรือไม่ที่จะระบุคีย์ที่ส่งต่อโดยใช้ IdentityFile directive ใน. ssh / config ฉันพบปัญหานี้เมื่อพยายามปรับใช้รหัสบางอย่างผ่าน Capistrano / GIT บนเซิร์ฟเวอร์ที่ใช้งานจริงของเรา ทั้งกุญแจส่วนตัวและกุญแจงาน GIT ของฉันจะถูกโหลดในตัวแทน SSH ของฉันเสมอและมันก็เกิดขึ้นจนกุญแจส่วนตัวของฉันถูกเพิ่มเข้าไปในตัวแทนก่อน ฉันใช้ตัวแทนการส่งต่อเมื่อปรับใช้กับ Capistrano ดังนั้นเมื่อโฮสต์พยายามรับรองความถูกต้องของการดำเนินการ 'git pull' มันล้มเหลวด้วยข้อผิดพลาดต่อไปนี้: ข้อผิดพลาด: การอนุญาตให้ 'บางคนซื้อคืน' ปฏิเสธที่จะเป็น 'ผู้ใช้ของคุณ' เพราะมันพยายามที่จะรับรองความถูกต้องโดยใช้คีย์ git ส่วนตัวของฉันก่อนที่จะลองใช้คีย์ที่เหมาะสม (ซึ่งมาในเอเจนต์ ssh) และสันนิษฐานว่าฉันกำลังเข้าถึง repo ต่างประเทศซึ่งฉันไม่ได้รับอนุญาตให้เข้าถึง ฉันสามารถให้สิทธิ์ผู้ใช้ส่วนตัวของฉันในการเข้าถึง repo งานทุกชิ้น แต่ในเครื่องของฉันฉันสามารถแก้ไขปัญหานี้ได้ด้วยการกำหนดโดเมนที่กำหนดเองใน. ssh / config ดังนี้: โฮสต์ personal.github.com ชื่อโฮสต์ github.com ผู้ใช้ git …

2
บันทึกตัวตนที่เพิ่มโดย ssh-add เพื่อคงอยู่
ฉันเพิ่งติดตั้งเพื่อให้ฉันสามารถใช้กับopensshgit ในกระบวนการตั้งค่า (ตามบทความนี้ ) ฉันรันคำสั่ง: $ eval "$(ssh-agent -s)" $ ssh-add ~/.ssh/<name of key> ต่อมาหลังจากฉันออกจากระบบและกลับมาฉันพยายามใช้git pushฉันได้รับข้อผิดพลาด วิธีแก้ไขข้อผิดพลาดนี้กำลังเรียกใช้คำสั่งเดียวกันเหล่านั้นอีกครั้ง กรุณาบอกฉันว่าฉันสามารถ ssh-agentวิ่งต่อไปดังนั้นฉันไม่ต้องเริ่มใหม่ จดจำปุ่มที่ฉันเพิ่มดังนั้นฉันไม่ต้องเพิ่มกุญแจทุกครั้ง เพื่อชี้แจงฉันใช้ zsh เพื่อให้คุณสมบัติทุบตีบางอย่างไม่ทำงานใน. zshrc ของฉัน
14 linux  ssh  openssh  ssh-agent 

2
คีย์ SSH แตกต่างจากคีย์อสมมาตรที่ใช้เพื่อวัตถุประสงค์อื่นอย่างไร
กุญแจ SSH แตกต่างจากคีย์แบบไม่สมมาตรที่ใช้เพื่อวัตถุประสงค์อื่นอย่างไรเช่นการลงชื่ออีเมล ฉันได้รับแจ้งให้ถามสิ่งนี้ส่วนหนึ่งเนื่องจากใน OS X มีแอปที่จัดการคีย์ SSH (ssh-agent, SSHKeychain ฯลฯ ) รวมถึงแอพที่ออกแบบมาเพื่อจัดการคีย์ GPG (GPG เข้าถึงพวงกุญแจ ฯลฯ ) และเห็นได้ชัดว่าไม่เคยพบทั้งสอง อย่างไรก็ตามฉันไม่เชื่อว่านี่เป็นปัญหาเฉพาะของ OS X การแยกข้อกังวลนี้เป็นเพราะกุญแจมีความแตกต่างกันมากหรือเพราะมันถูกเก็บไว้ในสถานที่ต่างกันหรือเป็นเพราะเหตุผลอื่นหรือการรวมกันของเหตุผลเช่นเหตุผลทางประวัติศาสตร์?

7
Filezilla บน Mac: SFTP ด้วยการตรวจสอบสิทธิ์ด้วยรหัสผ่านหรือไม่?
ฉันพยายามทำตามคำแนะนำที่นี่สำหรับ OSX http://wiki.filezilla-project.org/Howto ฉันสามารถsshไปยังเซิร์ฟเวอร์เป้าหมายได้สำเร็จโดยไม่มีชื่อผู้ใช้ / รหัสผ่าน (OSX เลือกใบรับรองของฉันจาก~/.sshไดเรกทอรี) แต่ฉันไม่รู้ว่าจะให้ Filezilla ทำเช่นเดียวกันได้อย่างไร ฉันได้ลองใช้งานssh-agentซึ่งไม่ได้ทำอะไรมาก

1
วิธีการส่งต่อเอเจนต์ SSH บนเทอร์มินัล Mac
ฉันได้ตรวจสอบบทเรียนมากมายเกี่ยวกับเรื่องนี้แล้ว แต่ยังไม่ชัดเจน ตามวิธีการมีอยู่สองวิธีในการกำหนดค่าสำหรับการส่งต่อตัวแทน ใน~/.ssh/configชุดไฟล์กำหนดค่าของคุณ Host example.com ForwardAgent yes ssh-addโดยการเพิ่มตัวตนเช่น มีประโยชน์อะไรบ้าง การส่งต่อตัวแทน SSH ใช้เพื่อจัดเก็บวลีรหัสผ่าน เพื่อที่เราไม่จำเป็นต้องใส่วลีรหัสผ่านในแต่ละครั้ง? เราต้องการเซิร์ฟเวอร์สองเครื่องเพื่อทดสอบการส่งต่อตัวแทน SSH หรือไม่ กรุณาแนะนำ หรือเราสามารถทดสอบกับเซิร์ฟเวอร์เดียวได้หรือไม่ ฉันตรวจสอบลิงค์ศูนย์กลางคอมไพล์แล้วและทำตามขั้นตอนเดียวกัน ฉันสามารถดูตัวแทน เมื่อรันคำสั่งนี้echo "$SSH_AUTH_SOCK" หมายความว่าทำงานหรือไม่ ฉันจะทำกับเซิร์ฟเวอร์ของฉันได้อย่างไร กรุณาแนะนำฉัน UPDATE: เมื่อฉันพยายาม ssh ฉันได้รับข้อความแสดงข้อผิดพลาดนี้ใน terminal เอเจนต์ยอมรับว่าไม่สามารถลงชื่อโดยใช้คีย์ได้

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