'เปลี่ยนเส้นทาง' ssh


0

แทนที่จะใช้ ...

ssh://user@mysite.net:1234/mnt/thing/usr/prj

ฉันต้องการใช้

ssh://user@mysite.net:1234/prj

ฉันจะทำสิ่งนี้ได้อย่างไร มันจะดีหากผู้ใช้ไม่สามารถเข้าถึง/home, /varและเช่น ฉันต้องการเพียงสิ่งนี้สำหรับการถ่ายโอนข้อมูล


แล้ว symlink ล่ะ ln -s /mnt/thing/usr/prj /prj
phunehehe

1
ความเป็นไปได้ที่ซ้ำกันของการจำกัด ผู้ใช้ SCP / SFTP ไปยังไดเรกทอรี
Gilles

เห็นพ้อง ค่อนข้างเป็นปัญหาเดียวกัน
Shadur

คำตอบ:



0

/prjสร้างผู้ใช้ไดเรกทอรีบ้านซึ่งเป็น

สร้าง~/.ssh/authorized_keysไฟล์สำหรับผู้ใช้ที่มีกุญแจสาธารณะของผู้ใช้รีโมตรวมถึงข้อ จำกัด บางประการเกี่ยวกับคำสั่งและตัวเลือก ssh ที่มีให้เช่น:

command="/usr/bin/scp-wrapper",no-port-forwarding,no-X11-forwar
ding,no-agent-forwarding,no-pty ssh-rsa AAAAB3NzaC1yc2EAAAADAQA
BAAABAQCblahblahblahblahblahblahblahblahblahblahblahblahblahbla
hblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahbl
ahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahb
lahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblah
blahblahblahblahblahblahblahblahblahblahblahblahblahblahblahbla
hblahblahblahblahblahblahblahblahB user@site.com

ทำให้เข้มงวดมากที่สุด

จากนั้นคุณจะต้องสร้าง wrapper นั้นสำหรับ SCP บางอย่างเรียบง่ายดังต่อไปนี้จะใช้งานได้ แต่คุณจะต้องเพิ่มการตรวจสอบและทดสอบด้านความปลอดภัยที่ใส่ใจมากขึ้นก่อนที่จะใช้ในการผลิต

#!/usr/bin/env bash

$SSH_ORIGINAL_COMMAND

นี่เป็นเพียงตัวอย่างของสิ่งที่เป็นไปได้ ในกรณีนี้คำสั่ง scp แบบเต็มจะถูกบันทึกในตัวแปรสภาพแวดล้อม$SSH_ORIGINAL_COMMANDแต่เนื่องจากคุณไม่สามารถระบุคำสั่งที่มีอาร์กิวเมนต์ในcommand=ส่วนของ.authorized_keysไฟล์ได้คุณจำเป็นต้องใช้ wrapper

ผู้ใช้อาจยังคงสามารถเข้าถึงไดเรกทอรีสาธารณะเหนียวเช่น / tmp แต่พวกเขาจะไม่สามารถท่องไปรอบ ๆ / var หรือ / home

และพวกเขาอาจจะสามารถดึงไฟล์ออกจากเซิร์ฟเวอร์ของคุณ แต่คุณสามารถสรุปได้ทั้งหมดนี้chrootและรักษาความปลอดภัยของระบบได้อีกเล็กน้อยโดยใช้ความพยายามเพียงเล็กน้อย

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