โฮมไดเรกทอรี SSH ต่อโดเมนย่อย


12

ฉันสงสัยว่ามันเป็นไปได้ที่จะตั้งค่าไดเรกทอรีบ้านที่แตกต่างกันสำหรับผู้ใช้ ssh เดียวกันสำหรับแต่ละโดเมนย่อย

ดังนั้นสมมติว่าคุณลงชื่อเข้าใช้ด้วยssh myuser@example.comโฮมไดเร็กตอรี่ของคุณจะเป็น: /www/httpdocs/

หากคุณเข้าสู่ระบบด้วยssh myuser@subdomain1.example.comโฮมไดเร็กตอรี่ของคุณจะเป็น: /www/subdomain1/

หากคุณเข้าสู่ระบบด้วยssh myuser@subdomain2.example.comโฮมไดเร็กตอรี่ของคุณจะเป็น: /www/subdomain2/

...

และอื่น ๆ

คำตอบ:


19

SSH ไม่สามารถทำได้เนื่องจากโปรโตคอล SSH ไม่ได้รวมชื่อโฮสต์ที่ร้องขอในการโทร (HTTP เป็นหนึ่งในไม่กี่โปรโตคอลที่มีชื่อโฮสต์ที่ร้องขอซึ่งเป็นวิธีที่สามารถใช้สำหรับการโฮสต์เสมือน) มีสิ่งอื่นอีกสองสามอย่างที่คุณอาจลองแทน:

  • คุณสามารถสร้างผู้ใช้แยกต่างหากสำหรับแต่ละโดเมนย่อย แต่มี UID เดียวกับผู้ใช้ "หลัก" ผู้ใช้ย่อยจะมีการตั้งค่าโฮมไดเรกทอรีเป็นไดเรกทอรีย่อย ตัวอย่าง:

    useradd -o -u 4711 -d /var/www/subdomain1 subdomain1

  • ใช้โมดูล PAM เพื่อตรวจสอบสิทธิ์ตามโดเมนย่อย หากโมดูลนั้นมีอยู่ฉันไม่รู้ว่ามันจะเป็นอะไร แต่มันอาจคุ้มค่าที่จะดู

  • ใช้คีย์ SSH แยกสำหรับแต่ละโดเมนย่อย ที่ฝั่งไคลเอ็นต์ให้ตั้งค่า.ssh/configเพื่อให้คุณสามารถพิมพ์ssh subdomainเพื่อให้เข้าสู่ระบบด้วยรหัสที่ถูกต้อง ในฝั่งเซิร์ฟเวอร์มีคีย์สาธารณะในแต่ละเริ่มต้นด้วยคำว่าauthorized_keys environment="DOMAIN=subdomain"ที่ด้านเซิร์ฟเวอร์ให้สร้าง.ssh/rcไฟล์ที่จะ cd ไปยังไดเรกทอรีที่ถูกต้องตามDOMAINตัวแปรสภาพแวดล้อม PermitUserEnvironment yesนี้ต้องใช้เซิร์ฟเวอร์ที่จะกำหนดค่าด้วย


ขอบคุณ! ฟังดูเหมือนทางออกที่ดี ฉันจะลองดู
kapale

ฉันอยากจะแนะนำวิธีแก้ปัญหาด้วยปุ่ม SSH และโดยเฉพาะการส่งออก vars ENV จากเครื่องกำเนิดการเชื่อมต่อ แต่เขาถามเกี่ยวกับการมีไดเรกทอรีบ้านและไม่เพียงcdเข้าไปในพวกเขาดังนั้นฉันไม่คิดว่ามันเป็นทางออกที่ดี
Florin Asăvoaie

+1 แนวคิดของคีย์ SSH นั้นฉลาดมากและฉันไม่รู้ว่าคุณสามารถตั้งค่าสภาพแวดล้อมตามคีย์ได้
tgies

8

สิ่งนี้เป็นไปไม่ได้เนื่องจากโปรโตคอล SSH ไม่ได้ส่งชื่อโฮสต์ที่ร้องขอใด ๆ ในแพ็กเก็ต

ความคิดของฉันเกี่ยวกับการใช้สิ่งนี้คือการใช้ OpenVZ เพื่อแยกโดเมนย่อยและมี IP แยกต่างหากสำหรับแต่ละโดเมนย่อย


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