วิธีการ ssh -Y จากนั้น su - <ผู้ใช้อื่น> และยังคงส่งต่อแอปพลิเคชัน X ไปยังเครื่องท้องถิ่นของคุณ


13

มันง่ายพอที่จะ 'ดึงข้อมูล' (เช่นวาดในเครื่อง) แอปพลิเคชัน linux ที่ทำงานจากระยะไกล: หากฉันssh -Yไปยังเครื่องระยะไกลและเรียกใช้แอปพลิเคชันแอปพลิเคชันนั้นจะปรากฏขึ้นอย่างเพียงพอ

อย่างไรก็ตามหากในขณะที่ฉันอยู่ในเครื่องระยะไกลฉันsuเป็นผู้ใช้คนอื่นฉันไม่สามารถส่งต่อแอปพลิเคชัน X ไปยังเครื่องท้องถิ่นของฉันได้ wrong authenticationมันบอกว่า

ฉันไม่แน่ใจว่าจะจัดการกรณีนี้ได้อย่างไร echo $DISPLAYยังคงเป็นที่ถูกต้อง (กำหนดโดยเริ่มต้นssh -Yการเข้าสู่ระบบ) แต่คุกกี้เซสชั่นอาจมีการตั้งค่าเฉพาะสำหรับผู้ใช้เริ่มต้นที่ลงทะเบียน SSH

ฉันจะเอาชนะความยากลำบากนี้และส่งต่อแอปพลิเคชั่น X อื่น ๆ ที่เรียกใช้จากผู้ใช้อื่นได้อย่างไร

เหตุผลที่ฉันไม่ได้โดยตรงเพราะฉันไม่ต้องการให้ผู้ใช้นั้นสามารถเข้าถึงผ่าน ssh (เป็นผู้ใช้ "virtualbox" ซึ่งเห็นได้ชัดว่าเป็นเป้าหมายที่ง่ายสำหรับบอทที่พยายาม ssh ไปยังเซิร์ฟเวอร์นั้น) ...

คำตอบ:


12

เมื่อคุณเชื่อมต่อกับเครื่องลบผ่าน ssh ด้วยการเปิดใช้งานการส่งต่อ X11, ssh บนเซิร์ฟเวอร์จะสร้าง.Xauthorityไฟล์ในโฮมไดเรกทอรีของผู้ใช้ เนื่องจาก ssh รับฟัง X11 บนซ็อกเก็ต TCP ทุกคนสามารถเชื่อมต่อได้ เนื่องจากทุกคนสามารถเชื่อมต่อได้เราต้องการวิธีป้องกันไม่ให้ใครก็ตามที่ใช้จอแสดงผล สิ่งนี้ทำกับ.Xauthorityไฟล์นั้น ไฟล์มี "คุกกี้" ซึ่งนำเสนอไปยังเซิร์ฟเวอร์ X11 ที่ตรวจสอบว่าลูกค้าควรได้รับอนุญาตให้เชื่อมต่อ

ข้ามรายละเอียดทั้งหมดหากคุณคัดลอก.Xauthorityไฟล์นั้นไปยังไดเรกทอรีหลักของผู้ใช้ปลายทาง (และให้สิทธิ์การเป็นเจ้าของ) คุณควรจะสามารถเชื่อมต่อได้


เป็นที่น่าสังเกตว่าแม้หลังจากทำเช่นนี้ตัวแปร DISPLAY จะต้องตั้งค่าอย่างถูกต้องหลังจากสลับผู้ใช้ นี่อาจเป็นปัญหาเมื่อใช้ 'sudo' ซึ่งอาจกรองสภาพแวดล้อมออก
Chris Arguin

8
  1. ssh -Y ไปยังเครื่องระยะไกลเป็นตัวคุณเอง
  2. xauth listเมื่อมีการพิมพ์ รายการของ MAGIC-COOKIE รายการจะปรากฏขึ้น เซสชั่นการเข้าสู่ระบบของคุณน่าจะเป็นอันดับล่างสุดในรายการ (ตรวจสอบสิ่งนี้โดยดูที่ชื่อโฮสต์และรหัสตัวเลข UNIX และเปรียบเทียบกับชื่อโฮสต์ที่คุณใช้เปลือกและ localhost ปัจจุบันของคุณ: ## DISPLAY env variable)
  3. สลับผู้ใช้
  4. พิมพ์xauth add+ บรรทัด MAGIC-COOKIE ทั้งหมดจากด้านบน
  5. กราฟิกควรจะปรากฏขึ้นในขณะนี้ xlogoทดสอบด้วยอย่างรวดเร็ว

2
ไม่มี "+" ใน xauth เพิ่ม เช่นเพียงแค่ xauth เพิ่ม Ubuntu / unix: 10 MIT-MAGIC-COOKIE-1 6b49de7c34409d5ac69beab31d12ec94
Tuntable

1
USER="otherusername" && MAGIC_COOKIE=`xauth list | tail -n1` && su -c "xauth add $MAGIC_COOKIE" $USER && su - $USER
7yl4r

3

ฉันชอบคำตอบของแรนดี้ แต่มันก็ไม่ได้ผลสำหรับฉัน

นี่คือสิ่งที่ฉันต้องทำงาน:

  1. ssh -Y as user1
  2. xauth list | grep `uname -n`
  3. เปลี่ยนเป็น user2
  4. unset XAUTHORITY
  5. xauth generate :0 .
  6. xauth add :0 . <KEY-FROM-STEP-2>

สังเกตจุดสองจุดในขั้นตอนที่ 5 และ 6

ถ้าฉันเพียงแค่ทำตามคำตอบของแรนดี้XAUTHORITYตัวแปรของ user2 ยังคงชี้ไปที่.Xauthorityไฟล์ของ user1 และไวยากรณ์ของปุ่ม + ไม่ทำงาน


2

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

ถ้าไม่ใช่และนี่คือสาเหตุของปริศนาของคุณ:

เหตุผลที่ฉันไม่ได้โดยตรงเพราะฉันไม่ต้องการให้ผู้ใช้นั้นสามารถเข้าถึงผ่าน ssh (เป็นผู้ใช้ "virtualbox" ซึ่งเห็นได้ชัดว่าเป็นเป้าหมายที่ง่ายสำหรับบอทที่พยายาม ssh ไปยังเซิร์ฟเวอร์นั้น) ...

ดูเหมือนว่าฉันไม่ได้เป็นเหตุผลที่ดี "สิ่งที่บอตเป้าหมาย" WRT sshd ที่ตั้งค่าไว้อย่างดีนั้นส่วนใหญ่ไม่เกี่ยวข้อง พวกเขาจะส่งเสียงรบกวนรอบ ๆ พอร์ต 22 ทั่วทุกที่หรือไม่ เห็นได้ชัดว่า นี่หมายความว่าพวกเขามีโอกาสประสบความสำเร็จจริงหรือ

ลอง googling ไปรอบ ๆ เพื่อหาเรื่องราวเกี่ยวกับคนที่มีบอตแบบไม่ระบุชื่อแบบสุ่มประสบความสำเร็จในการแยก sshd ฉันแน่ใจว่ามันจะต้องเกิดขึ้นกับใครบางคน (และแน่นอนคุณอาจไม่เคยรู้) แต่ฉันไม่สามารถหารายงานดังกล่าวได้ มันจะน่าสนใจที่จะอ่านว่าการกำหนดค่าที่ใช้คืออะไร

SSH มีความปลอดภัยมากเมื่อใช้อย่างถูกต้อง หากไม่ใช่การค้าทางอินเทอร์เน็ตจะไม่เป็นไปได้ เหตุใดบอทเหล่านี้จึงรบกวน โดย "ใช้อย่างถูกต้อง" ฉันหมายถึงหลักกับคู่คีย์สาธารณะ / ส่วนตัวบังคับ หากคุณทำอย่างนั้นและมั่นใจว่าคีย์ส่วนตัวของคุณปลอดภัย (และคุณควรจะ) ให้มั่นใจใน sshd

ฉันคิดว่าสาเหตุที่ "การพยายามทำลาย" เกิดขึ้นเพราะมีผู้ใช้จำนวนมากที่ไม่ทำสิ่งต่าง ๆ เช่นถามคำถามเกี่ยวกับ U&L;) และไม่อ่านหน้าคู่มือและใช้การป้องกันด้วยรหัสผ่านเพียงอย่างเดียว ซึ่งคล้ายกับการทิ้งบัตร ATM ของคุณไว้ในเครื่องที่มีป้ายบอกว่า "เดา!"

อย่างไรก็ตามถ้าคุณคิดว่าคีย์ส่วนตัวของคุณเช่นบัตร ATM ของคุณ - เป็นสิ่งที่คุณมีความปลอดภัยทางร่างกาย (ซึ่งเป็นหลัก) จากนั้นเป้าหมายจะกลายเป็นสิ่งที่ไม่มีตัวตนมากขึ้น บอทเหล่านั้นสามารถพิสูจน์ได้ว่าใช่มันต้องใช้เวลาหลายพันเครื่องในการทำงานร่วมกันเพื่อกดดันคีย์ 2048 บิต

หากคุณป่วยจากการอ่านรายงานการพยายามบุกให้เปลี่ยนพอร์ตของคุณ ฉันเคยเห็นผู้คนที่นี่ poo-poo สิ่งนี้ว่า "ความปลอดภัยโดยความสับสน" อย่างไรก็ตาม sshd ที่มีความปลอดภัยบนพอร์ต 22 จะไม่ปลอดภัยน้อยกว่าในพอร์ต 57 แต่จะไม่ถูกรบกวนแบบสุ่ม แน่นอนว่าศัตรูเสียงพึมพำของคุณทุกคนสามารถสแกนพอร์ต IP ทั้งหมดได้ แต่คุณรู้อะไรไหม พวกเขาทำไม่ได้ ฉันคิดว่านี่เป็นเพราะสิ่งที่พวกเขากำลังมองหาคือใครบางคนกำลังใช้ระบบที่ไม่ได้ดูแม้แต่/etc/ssh/sshd_configน้อยให้ความรู้และปรับตัวเองน้อยลง


ฉันเห็นด้วยกับทุกสิ่งที่คุณพูด แต่ฉันมักจะไม่มั่นคงอย่างบ้าคลั่ง (นั่นคือสิ่งที่พวกเขาสอนคุณในหลาย ๆ สถานการณ์หลังจากที่คุณถูกไฟไหม้หรือไม่) บอกตามตรงว่าพีซีที่ฉันพยายามจะเข้าสู่ระบบกำลังเป็นไฟร์วอลล์ (ไม่สามารถเข้าถึงจากภายนอก) ssh อยู่ในพอร์ตที่สูงมีรหัสผ่านที่ยาก แต่ฉันก็อดไม่ได้ที่จะรู้สึกว่า "virtualbox" เป็นชื่อสาธารณะ หนึ่งที่ใครบางคนอาจเลือกที่จะรวมอยู่ในรหัสบอท คีย์ SSH เป็นโซลูชันที่ยอดเยี่ยมโดยเฉพาะถ้าใช้กับการป้องกันด้วยรหัสผ่าน แต่ฉันต้องแบกลินุกซ์ distro บน usb ถ้าฉันจะใช้มัน
nass
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.