'การข้ามเครือข่ายไม่อนุญาตโดยเซิร์ฟเวอร์' ของลูกค้า ssh หมายถึงอะไร


25

ฉันไม่สามารถเชื่อมต่อกับอินสแตนซ์ของเซิร์ฟเวอร์ SSH และเอาท์พุท verbose debug1: Roaming not allowed by serverได้ สามารถคาดการณ์ได้ดังต่อไปนี้และมีปัญหาที่หลีกเลี่ยงได้:

  • โรมมิ่งหมายถึงการเข้าถึงบริการจากเครือข่ายประเภทต่างๆ ฉันไม่สามารถเข้าใจได้ว่ามันหมายถึงอะไรในบริบทของการส่งออก verbose ของsshไคลเอนต์ 6.6.1 ที่ทำงานบน Ubuntu 14.04
  • ไม่เป็นที่ชัดเจนว่านี่เป็นข้อผิดพลาดหรือไม่และถ้ามันเป็นไม่ว่าจะเป็นสาเหตุของความล้มเหลวของการเข้าสู่ระบบหรือไม่ (ฉันไม่ต้องการที่จะดำน้ำในการเชื่อมต่อล้มเหลวที่นี่แม้ว่า; ไม่มีข้อความส่งออกของsshไม่ BTW -> ปัญหาและเวลามากขึ้น - คุณได้รับการเตือนแล้ว!)
  • ฉันสอบถามsite:www.openssh.org roamingใน google ด้วยผลลัพธ์ว่างเปล่าและ manpages ไม่มีคำดังกล่าว มันไร้สาระที่จะใช้มันแม้ว่ามันจะถูกบันทึกเพราะความกำกวม!

ข้อความหมายถึงอะไร ฉันจะใช้มันเพื่อแก้ไขข้อผิดพลาดจำนวนมากที่มีความคลุมเครือไม่ชัดเจนใช้งานผิดพลาดและข้อความอื่น ๆ ของ SSH ได้อย่างไร

คำตอบ:


22

ไม่ใช่ข้อผิดพลาดจริงๆ เป็นเพียงข้อความดีบั๊กที่บอกคุณว่าเซิร์ฟเวอร์ไม่ยอมรับการเชื่อมต่อโรมมิ่ง

เห็นได้ชัดว่าการโรมมิ่งเป็นคุณสมบัติทดลองที่เพิ่มใน OpenSSH ย้อนกลับไปในปี 2009 หรือมากกว่านั้น วัตถุประสงค์ของคุณสมบัตินี้คือเพื่อให้ไคลเอ็นต์ ssh ยกเลิกการเชื่อมต่อจากเซสชันเซิร์ฟเวอร์จากนั้นดำเนินการเซสชันต่อจากตำแหน่งอื่น ดูที่นี่สำหรับการสนทนาเกี่ยวกับเรื่องนี้ Googling ssh โรมมิ่งและ "Martin Forssén" จะเปิดหน้าอื่น ๆ ดูเหมือนว่าจะไม่มีการพัฒนาอย่างจริงจัง ฉันสงสัยว่านักพัฒนาซอฟต์แวร์ SSH ไม่เคยทำเอกสารเพราะเป็นการทดลองและอาจไม่เสร็จสิ้น

จากการตรวจสอบซอร์สโค้ดของ OpenSSH มีตัวเลือกฝั่งไคลเอ็นต์ที่ไม่มีเอกสารUseRoamingซึ่งสามารถตั้งค่าเป็นใช่หรือไม่ใช่ การเพิ่มบรรทัด "UseRoaming no" ในการกำหนดค่าไคลเอนต์ของคุณ (โดยปกติ.ssh/configไฟล์ของคุณ) ควรจะระงับข้อความดีบั๊ก

ฉันไม่เห็นชัดเจนว่าทำไมการHostbasedAuthenticationตั้งค่าฝั่งเซิร์ฟเวอร์จะควบคุมว่าเซิร์ฟเวอร์ยอมรับการเชื่อมต่อโรมมิ่งหรือไม่

UPDATE: สนับสนุนบริการโรมมิ่งลูกค้าเห็นได้ชัดคือเรื่องของการเปิดรับรายงานช่องโหว่คอมพิวเตอร์, CVE-2016-0777 OpenSSH เวอร์ชั่น 5.4 ถึง 7.1p1 นั้นมีช่องโหว่ ผู้ใช้ควรอัปเกรดเป็น OpenSSH 7.1p2 หรือใหม่กว่า ผู้ใช้ที่ไม่สามารถอัพเกรดควรปิดการใช้งานโรมมิ่งในไคลเอนต์โดยเพิ่ม "UseRoaming no" ในการกำหนดค่าไคลเอ็นต์ ssh ดูต่อไปนี้:


7
ตอนนี้ขอแนะนำให้ตั้งค่าเป็นไม่ mail-archive.com/misc@openbsd.org/msg144351.html
nikeee

1
@nikeee: ... และนั่นเป็นเรื่องที่ควรระวังสำหรับการจัดส่งสตับที่ไม่ทำงาน "ไม่เป็นอันตราย" (โปรดทราบว่าคุณจำเป็นต้องตั้งค่าเป็นnoในการตั้งค่าไคลเอนต์ไม่ได้อยู่บนเซิร์ฟเวอร์)
Piskvor

@Piskvor แต่มีหนังสือ devops / webops อยู่จำนวนหนึ่งที่เผยแพร่สิ่งนั้น .. พวกเขาอาจผิดทั้งหมดได้ไหม? โอ้
Florian Heigl

คำอธิบายที่ดีที่สุดเกี่ยวกับการกำหนดค่านี้ในเน็ต
nils petersohn

4

รายการเปลี่ยนแปลงจาก openssh 5.3 บน CentOS6 มีหมายเหตุ:

2009/06/27
     เพิ่มตัวเลือกไคลเอนต์ UseRoaming มันยังไม่ได้ทำอะไร แต่จะทำ
     ควบคุมว่าลูกค้าจะพยายามใช้โรมมิ่งหรือไม่หากเปิดใช้งานใน
     เซิร์ฟเวอร์ จาก Martin Forssen

3

@ ILMostro_7 chmod 600 authorized_keys ใช้ได้ดีสำหรับฉัน

เพื่อประโยชน์ของคนอื่น ๆ ที่มาถึงที่นี่โดย googling "การโรมมิ่งไม่ได้รับอนุญาตโดยเซิร์ฟเวอร์" และใช้ (Ubuntu) ลูกค้า Linux คุณอาจแก้ไขที่เตือนแล้วดูที่: -

Agent admitted failure to sign using the key

การรักษาที่ได้รับที่https://help.github.com/articles/error-agent-admitted-failure-to-sign/

    # start the ssh-agent in the background
    $ eval "$(ssh-agent -s)"
    # Agent pid 59566 (displays process id)
    $ ssh-add
    # Enter passphrase for /home/you/.ssh/id_rsa: [tippy tap]
    # Identity added: /home/you/.ssh/id_rsa (/home/you/.ssh/id_rsa)

'#' = ความคิดเห็น คุณ = ชื่อผู้ใช้ของคุณ [tippy tap] = humo [u] r? = กดปุ่ม Enter

ฉันหวังว่าจะช่วยคนได้มากเท่าที่ Q&A นี้ช่วยฉันแล้ว


2

ข้อความแสดงข้อผิดพลาดนี้จะปรากฏขึ้นเมื่อ/etc/ssh/sshd_configไม่ได้ HostbasedAuthenticationตั้งค่าไว้yesบนเซิร์ฟเวอร์

ฉันมีความคิดว่าทำไมไม่มี.

ปัญหาอื่นอาจเป็น:

ตรวจสอบสิทธิ์บนไดเร็กทอรี $ USER / .ssh ซึ่งผู้ใช้ควรเป็นเจ้าของและเป็น chmod 700 ไฟล์ที่ได้รับอนุญาตควรเป็น chmod 700 และเป็นเจ้าของโดยผู้ใช้


700? ทำไมคุณถึงต้องใช้executeบิตกับคีย์ไฟล์
ILMostro_7

ใบเสนอราคามาจากไหน กรุณาเพิ่มการอ้างอิง
Karl Richter

ILMostro_7 ไม่ได้อยู่ในไฟล์มันอยู่ในไดเรกทอรีและเพื่อให้ผู้ใช้สามารถสร้างไฟล์ในไดเรกทอรีได้จะต้องตั้งค่าสถานะการเรียกใช้งาน
IceyEC

@IceyEC คำตอบที่แสดงให้เห็น 700 authorized_keys
mdrozdziel

1
chmod 400ควรจะเป็น ไม่มีความคิดว่าทำไมฉันเคยต้องการที่ไฟล์ที่จะปฏิบัติการ; และการเข้าถึงการเขียนยังไม่เป็นที่พึงปรารถนา 99.999% ของเวลา sshdการตรวจสอบว่าผู้ใช้.sshโฟลเดอร์ที่มีการเข้าถึงสำหรับกลุ่มและอื่น ๆ .ssh/authorized_keysและเช่นเดียวกันสำหรับ ดังนั้น perms ในคำตอบอาจใช้งานได้ แต่มันกว้างโดยไม่จำเป็น
Piskvor
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.