มีวิธีดู (และควบคุม) เดสก์ท็อประยะไกลผ่าน SSH หรือไม่ ฉันจะไม่สามารถเข้าถึงเครื่องโฮสต์จากระยะไกลได้
มีวิธีดู (และควบคุม) เดสก์ท็อประยะไกลผ่าน SSH หรือไม่ ฉันจะไม่สามารถเข้าถึงเครื่องโฮสต์จากระยะไกลได้
คำตอบ:
สิ่งนี้สามารถทำได้กับเซิร์ฟเวอร์ vino vnc & remmina (ทั้งคู่มาเป็นค่าเริ่มต้นด้วย ubuntu; หากไม่ได้ติดตั้งโดยใช้sudo apt-get install remmina
) จากนั้นเรียกใช้คำสั่งต่อไปนี้จากโลคัลคอมพิวเตอร์ในเทอร์มินัลพรอมต์:
ssh -Y gman@remote
. ใช้การส่งต่อ X11 ที่เชื่อถือได้มิฉะนั้นจะไม่ทำงาน
vino-preferences
. มันจะเปิดการตั้งค่า vino
คลิกยังconfigure network automatically to accept connection
ด้วย แต่ไม่ต้องใส่รหัสผ่านใด ๆ base64 ของการเข้ารหัส จากนั้นคลิกปิด จากนั้นเรียกใช้:
sudo -s
export DISPLAY=:0.0
xhost +
/usr/lib/vino/vino-server &
มันจะเริ่มต้นเซิร์ฟเวอร์ vino
ออกจากระบบเซิร์ฟเวอร์:
xhost -
Press CTRL+C twice
exit
exit
จากนั้นเปิดremmina เลือกvnc
ภายใต้โปรโตคอล
ภายใต้basic
แท็บให้ใส่ที่อยู่เซิร์ฟเวอร์ในserver
ฟิลด์
บนแท็บ SSH enable ssh tunnel
คลิก ภายใต้ssh authentication
อาจเป็นpassword
หรือpublic key
:
คลิกบันทึก จากนั้นคลิกสองครั้งที่ชื่อการเชื่อมต่อ (โฮมเดสก์ท็อปตามที่แสดงในรูปภาพ) เพื่อเริ่มการเรียกดูเดสก์ท็อประยะไกล
x11vnc
เป็นเซิร์ฟเวอร์ VNC ที่เรียบง่ายและคุณไม่ต้องวุ่นวายกับการตั้งค่า Gnome หรือไฟร์วอลล์ 500 เครื่องเพียงแค่ติดตั้งx11vnc
บนคอมพิวเตอร์ทุกเครื่องของคุณ (พร้อมหุ่นเชิดหรืออะไรก็ตามที่คุณใช้สำหรับการควบคุมจำนวนมาก)
จากนั้นใช้งานคอมพิวเตอร์ในพื้นที่ของคุณ:
ssh user@host -L 5900:localhost:5900 "x11vnc -display :0 -noxdamage"
เห็นได้ชัดว่าการสลับuser@host
ชื่อผู้ใช้และชื่อโฮสต์ / IP ของคอมพิวเตอร์ระยะไกล
และจากนั้นใช้ไคลเอนต์ VNC localhost:5900
ที่คุณเลือกที่จะเชื่อมต่อไปยัง คำสั่ง SSH เริ่มต้นเซิร์ฟเวอร์ vnc บนคอมพิวเตอร์ระยะไกลจากนั้นอุโมงค์กลับไปที่พอร์ตนั้นผ่าน SSH คุณไม่จำเป็นต้องเปิดพอร์ตใด ๆ (ตราบใดที่คุณสามารถ SSH ได้แล้ว)
หากคอมพิวเตอร์ของคุณมีการตั้งค่าการแสดงผลที่ตลกคุณอาจทำได้ดีกว่าที่จะออกจาก-display :0
กลุ่มในคำสั่ง SSH x11vnc
จะพยายามค้นหาจอแสดงผลที่ถูกต้องโดยอัตโนมัติ
ที่มา: askubuntu
vncviewer localhost::5900 -viewonly -encodings "tight" -quality 0
(บน Debian / Ubuntu ที่วิวเวอร์มาจาก tightvnc) หรือvncviewer localhost::5900 -viewonly -PreferredEncoding tight QualityLevel=0
(บน Red Hat / Fedora วิวเวอร์มาจาก tigervnc) ซึ่งระดับคุณภาพทั้ง Debian และ Redhat คือ ระหว่าง 0 ถึง 9 โดยที่ 9 ดีที่สุด แต่ต้องการการเชื่อมต่อที่รวดเร็ว
vncviewer
การเชื่อมต่อที่ช้า ฉันเองอาจจะตั้งค่าQualityLevel=4 or 5
เพราะ0 qualitylevel
(ซึ่งก็คือ256 colors
ฉันคิดว่า) มันน่าเบื่อเกินไปสำหรับฉัน
-auth guess
และเรียกใช้เป็นรูต มีประโยชน์มากขอบคุณ!
สมมติว่าคุณได้ติดตั้งOpenSSH Server
บนเครื่องโฮสต์ของคุณแล้วคุณต้องเปิดใช้งานการควบคุมเดสก์ทอปบนเครื่องโฮสต์ของคุณ หากคุณสามารถเปิดใช้งานการควบคุมเดสก์ท็อปบนเครื่องโฮสต์ของคุณก่อนจากนั้นไปที่ 1a หากคุณต้องเปิดใช้งานการควบคุมเดสก์ท็อปบนเครื่องโฮสต์ของคุณจากระยะไกลให้ไปที่ 1b
ถัดไปสร้างโปรไฟล์ไคลเอนต์เดสก์ท็อประยะไกลบนเครื่องไคลเอนต์ของคุณเพื่อเชื่อมต่อกับเครื่องโฮสต์ผ่านอุโมงค์ SSH และดูและควบคุมเดสก์ท็อปของเครื่องโฮสต์ผ่านอุโมงค์ SSH ในที่สุด
ทำสิ่งต่อไปนี้บนเครื่องโฮสต์:
vino-preferences
vino-preferences
ยังอยู่ใน Dash ภายใต้ Desktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
ทำสิ่งต่อไปนี้บนเครื่องไคลเอนต์แทนที่123.123.12.3
ด้วยที่อยู่ IP ของเครื่องโฮสต์ของคุณ:
ssh -Y 123.123.12.3
vino-preferences
vino-preferences
ยังอยู่ใน Dash ภายใต้ Desktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
ทำสิ่งต่อไปนี้บนเครื่องไคลเอ็นต์:
remmina
Remmina Remote Desktop Client
Ctrl+ Nหรือการเชื่อมต่อ> ใหม่
Server
SSH
แท็บEnable SSH Tunnel
SSH Authentication
<username>
และโหมดของคุณบนเครื่องไคลเอนต์เมื่อถูกถาม<username>
รหัสผ่านให้ป้อนเพื่อสร้างอุโมงค์ SSH เมื่อถามถึงรหัสผ่าน VNC ให้ป้อนวลีรหัสผ่านที่คุณป้อนก่อนหน้านี้ลงในเครื่องโฮสต์
หากประสบความสำเร็จในขั้นตอนนี้คุณควรดูและควบคุมเดสก์ท็อปของเครื่องโฮสต์จากเครื่องไคลเอนต์ของคุณผ่านอุโมงค์ SSH
ฉันสามารถตั้งค่าการติดตั้ง Ubuntu 16.04 ใหม่จากการเชื่อมต่อ ssh ระยะไกลด้วยสคริปต์ต่อไปนี้:
#! / bin / ทุบตี ส่งออก DISPLAY =: 0 อ่าน -e -p "รหัสผ่าน VNC: รหัสผ่าน" -i "ubuntu" dconf write / org / gnome / desktop / remote-access / enabled จริง dconf write / org / gnome / desktop / remote-access / prompt-enabled false dconf write / org / gnome / desktop / remote-access / authentication-methods "['vnc']" dconf เขียน / org / gnome / desktop / remote-access / require-encryption เท็จ dconf เขียน / org / gnome / desktop / remote-access / vnc-password \ "\ '$ (echo -n $ รหัสผ่าน | base64) \' \" dconf dump / org / gnome / desktop / remote-access / sudo service lightdm ทำการรีสตาร์ท
การอ้างอิงเป็นสิ่งสำคัญสำหรับการตั้งค่าสตริงใด ๆ (เห็บเดียวภายในเครื่องหมายคำพูด) สำหรับ dconf เพื่อให้สามารถเขียนได้จำเป็นต้องเข้าถึง XWindows ดังนั้นจึงจำเป็นต้องมีส่วนส่งออก DISPLAY ฉันคิดว่าคุณยังต้องเข้าสู่เดสก์ท็อปบนเครื่อง Ubuntu จริงเพื่อเชื่อมต่อกับ VNC หลังจากนี้ คำสั่ง dump นั้นอยู่ที่นั่นเพื่อยืนยันการตั้งค่าทั้งหมดที่คุณมีคุณไม่ต้องการ
เป็นทางเลือกคุณอาจต้องการทำสิ่งนี้หากคุณต้องการให้จอแสดงผลอยู่ตลอดเวลา:
dconf write / org / gnome / desktop / screensaver / lock-enabled false dconf write / org / gnome / desktop / screensaver / ubuntu-lock-on-suspend false dconf write / org / gnome / desktop / session / idle-delay "uint32 0"
Xnest
กับ X11 สำหรับการอ้างอิงเพื่อเริ่มเซสชันจากระยะไกลและส่งต่อไปยังคอมพิวเตอร์ปัจจุบันของคุณ (ฉันทำสิ่งนี้เป็นครั้งคราวกับ pi ของฉัน) man pageฉันใช้Xnest
อย่างนั้น:
Xnest :1 -ac &
DISPLAY=:1 . /etc/X11/Xsession
วิธีเริ่มเซิร์ฟเวอร์ Vino จากระยะไกลโดยไม่ต้องส่งต่อ X (บรรทัดคำสั่งเท่านั้น)
เข้าสู่ระบบคอมพิวเตอร์ระยะไกลในฐานะผู้ใช้ที่จะแชร์เดสก์ท็อปและพอร์ตส่งต่อ 5900 ไปยังพอร์ตเดียวกันบนโลคอลโฮสต์ ด้วย PuTTY การเปลี่ยนเส้นทางถูกตั้งค่าใน Connection / SSH / Tunnels ด้วยบรรทัดคำสั่งให้ใช้:
ssh -L 5900:localhost:5900 user@remote-computer
ติดตั้งvino-server
หากยังไม่ได้ติดตั้ง ตัวอย่างเช่น:
sudo apt install vino
เปิดใช้งานการแชร์เดสก์ท็อป (จับคู่หมายเลขที่แสดงในบรรทัดที่ 1 และ 2):
echo $DISPLAY
export DISPLAY=:0
dbus-launch --exit-with-session gsettings set org.gnome.Vino enabled true
dbus-launch --exit-with-session gsettings set org.gnome.Vino prompt-enabled false
dbus-launch --exit-with-session gsettings set org.gnome.Vino require-encryption false
/usr/lib/vino/vino-server
เริ่มโปรแกรมดู VNC และเชื่อมต่อกับlocalhost
ที่อยู่เซิร์ฟเวอร์ VNC
No protocol specified Failed to connect to Mir: Failed to connect to server socket: No such file or directory Unable to init server: Could not connect: Connection refused Cannot open display: Run 'vino-server --help' to see a full list of available command line options
จาก @Khurshid Alam คำตอบฉันขอนำเสนอตัวอย่างต่อไปนี้:
ssh $TARGETHOST -L 5900:localhost:5900 "x11vnc -localhost -display :0 -noxdamage" &; sleep 10 && vinagre localhost
มันเป็นคำสั่งเดียวที่ไม่ต้องการการโต้ตอบใด ๆ
มันสร้างอุโมงค์ SSH ด้วยการส่งต่อพอร์ตเริ่มต้นx11vnc
ด้วยวิธีที่ปลอดภัยและเปิดใช้งานและเชื่อมต่อกับวิวเวอร์ VNC
มันต้องการ x11vnc บนโฮสต์เป้าหมาย แต่ไม่มีการกำหนดค่าเพิ่มเติม
ในเซิร์ฟเวอร์พีซี
ในไคลเอนต์พีซี (จากตำแหน่งที่คุณต้องการควบคุม UI ของเซิร์ฟเวอร์)
ผิดพลาด