-এক্স পতাকা (এক্স 11 ফরোয়ার্ডিং) উইন্ডোজটিতে কাজ করে না


16

আমি উইন্ডোজ 8.1 এ ওপেন এসএসএইচ (ওপেনএসএসএইচ_6.6.1 পি 1, ওপেনএসএসএল 1.0.1i 6 আগস্ট 2014) ব্যবহার করছি। এক্স 11 ফরোয়ার্ডিং কাজ করছে বলে মনে হচ্ছে না। DISPLAY এনভায়রনমেন্ট ভেরিয়েবল সেট করা হয় না।

উদাহরণস্বরূপ, যদি আমি সংযোগের জন্য বিটভিস বা পুট্টি ব্যবহার করি এবং এনভির চালনা করি তবে আমি দেখতে পাচ্ছি:

[marko@vm:~]$ env
XDG_SESSION_ID=6
TERM=xterm
SHELL=/bin/bash
SSH_CLIENT=192.168.1.174 61102 22
SSH_TTY=/dev/pts/0
USER=marko
MAIL=/var/mail/marko
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
PWD=/home/marko
LANG=en_CA.UTF-8
NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript
SHLVL=1
HOME=/home/marko
LANGUAGE=en_CA:en
LOGNAME=marko
SSH_CONNECTION=192.168.1.174 61102 192.168.1.64 22
XDG_RUNTIME_DIR=/run/user/1000
DISPLAY=localhost:10.0
_=/usr/bin/env

আমি পরিবর্তে যদি ওপেনএসএইচ (এসএসএস-এক্স মার্কো @ ভিএম) ব্যবহার করি:

[marko@vm:~]$ env
XDG_SESSION_ID=8
TERM=cygwin
SHELL=/bin/bash
SSH_CLIENT=192.168.1.174 61150 22
SSH_TTY=/dev/pts/1
USER=marko
MAIL=/var/mail/marko
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
PWD=/home/marko
LANG=en_CA.UTF-8
NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript
SHLVL=1
HOME=/home/marko
LANGUAGE=en_CA:en
LOGNAME=marko
SSH_CONNECTION=192.168.1.174 61150 192.168.1.64 22
XDG_RUNTIME_DIR=/run/user/1000
_=/usr/bin/env

1
একটি সুস্পষ্ট একটা কারণ হতে পারে, কিন্তু আমি তোমার পদ থেকে নিশ্চিত বলতে পারে না - আপনি আসলে একটি এক্স সার্ভার উইন্ডোজ ইনস্টল, যেমন নিম্নলিখিত আছে bitvise.com/ssh-x11-forwarding ?

1
হ্যাঁ, আমি Xming X সার্ভারের (আছে straightrunning.com/xmingnotes )
abendigo

আপনি কি - কেবল জিনিস পরীক্ষা করতে - পুট্টির সাথে একই চেষ্টা করেছেন? যদি তা না হয় তবে আমি এটি দিয়ে চেষ্টা করার এবং এটি সেখানে কাজ করে কিনা তা দেখার পরামর্শ দিচ্ছি।
পোলেমন

1
হ্যাঁ, এটি পুট্টিতে কাজ করে।
abendigo

আমি এখনই আমার উইন্ডোজ ভিএম পরীক্ষা করছি। এটি কাজ করতে পটিটিওয়াই কী ধরণের ভেরিয়েবল সেট করে তা চেক করার মতোই সহজ হতে পারে। আমি কয়েক ঘন্টার মধ্যে একটি উত্তর যুক্ত করব।
পোলেমন

উত্তর:


16

আপনি DISPLAYক্লায়েন্ট উপর পরিবেশ পরিবর্তনশীল সেট করেছেন ? আপনি কোন শেলটি ব্যবহার করছেন তা আমি নিশ্চিত নই, তবে বোর্ন শেল ডেরিভেটিভ (বাশের মতো) দিয়ে দয়া করে চেষ্টা করুন:

export DISPLAY=127.0.0.1:0
ssh -X marko@vm

অথবা আপনি যদি cmd.exe ব্যবহার করছেন:

set DISPLAY=127.0.0.1:0
ssh -X marko@vm

আপনাকে ধন্যবাদ, আমি ঠিক এটাই মিস করছি! আমার অনুমতি পাওয়ার সাথে সাথে আমি অনুগ্রহটি প্রদান করব।
abendigo

নোট করুন যে আমি রোয়ামার উত্তরটি (নীচে) আপ-ভোট দিয়েছি কারণ এটি কেন কেবল উত্তর দেওয়ার পাশাপাশি তা বর্ণনা করে ।
আজরেই

2
সুতরাং রোয়মার উত্তর ব্যাখ্যা করে যে সমস্যাটি কেন ঘটেছে তবে এটি সমস্যার সমাধান করতে আমাকে সহায়তা করেনি। আমি আমার প্রশ্নে ব্যাখ্যা দিয়েছিলাম যে আমি উইন্ডো চালাচ্ছি। ইয়াগশির উত্তরটি আমাকে উইন্ডোতে প্রবেশ করার একটি আদেশ দিয়েছে যা আমার সমস্যার সমাধান করে। এই কারণেই আমি এই উত্তরটি নির্বাচন করেছি।
abendigo

আমি এই উত্তরটি ভোট দেওয়ার জন্য একটি অ্যাকাউন্ট নিবন্ধিত করেছি। আমি এখানে পৌঁছানোর আগে অনেক আগে থেকেই ইন্টারনেট অনুসন্ধান করেছিলাম।
রিও উইং

3
এই সমাধানটি আমার পক্ষে কাজ করে না। set DISPLAY=anythingতারপরে ssh -X user@remoteরিটার্নের CreateProcessW failed error:2 ssh_askpass: posix_spawn: No such file or directory Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).সাথে পরিবেশের পরিবর্তনশীল আনসেট করা set DISPLAY=আমাকে আবার সফলভাবে এসএসএস করতে দেয় তবে এক্স ফরওয়ার্ডিং ছাড়া কাজ করে। এটি আমার কাছে কোনও ধারণা রাখে না যে DISPLAY নির্ধারণের ফলে সফ্টওয়্যারটিকে এইভাবে আমার পাসওয়ার্ড জিজ্ঞাসা করতে হবে। github.com/PowerShell/Win32-OpenSSH/issues/1088 github.com/PowerShell/Win32-OpenSSH/issues/1088
পাভেল

14

আপনি যখন চালান ssh -X remotehostএবং আপনি DISPLAY=localhost:10দূরবর্তী হোস্টের কাছে উপস্থাপিত হন। সার্ভারের ঠিকানা নির্ধারণের জন্য sshতার মূল মানটি ব্যবহার করে সেই বন্দরে শোনায় এবং ট্র্যাফিকটিকে কলিং সিস্টেমে ফরোয়ার্ড করে DISPLAY

এটি সম্ভবত আপনার স্থানীয় সিস্টেমে আপনি পেয়েছেন DISPLAY=:0। অথবা যদি আপনার না থাকে তবে এটিকেই ডিফল্ট করা হচ্ছে। এটি স্থানীয় সিস্টেমটিকে ইউনিক্স ডোমেন সকেটটি প্রদর্শনের সাথে যোগাযোগের জন্য ব্যবহার করার নির্দেশ দেয়। দুর্ভাগ্যক্রমে Xmingউইন্ডোজ সেই ইউনিক্স ডোমেন সকেট সেট আপ করে না তাই আপনার sshএক্স 11 ফরোয়ার্ডিং এই ধরণের ত্রুটিতে ব্যর্থ হয়:

$ export DISPLAY=:0
$ ssh -X remotehost xlogo
connect /tmp/.X11-unix/X0: No such file or directory
Error: Can't open display: localhost:10.0

ফিক্স - কমপক্ষে যতদূর Xmingযায় - মোটামুটি সহজ। DISPLAYএকটি ইউনিক্স ডোমেন সকেটের পরিবর্তে শ্রবণকারী টিসিপি সকেটের উল্লেখ করতে ভেরিয়েবলটি পরিবর্তন করুন ।

$ export DISPLAY=localhost:0
$ ssh -X remotehost xlogo

Xmingস্থানীয় টিসিপি পোর্ট 6000 শুনতে আপনাকে আপনার কনফিগারেশনটি মানিয়ে নিতে পারে I আমি এখানে কীভাবে শুরু করব Xming:

Xming.exe :0 -clipboard -multiwindow

XmingTcp / 6000 বন্দরে শুনছে তা নিশ্চিত করার জন্য এখানে প্রমাণ রয়েছে :

$ netstat -na | grep ':6000 .*LISTEN'
  TCP    0.0.0.0:6000           0.0.0.0:0              LISTENING

ধন্যবাদ, আমার এই সঠিক সমস্যা ছিল! আমি জানতাম না: 0 মানে সংযোগটি কোনও সকেটের মাধ্যমে শেষ হয়। আমি সর্বদা লোকালহোস্টের জন্য এটির শর্টহ্যান্ড ভেবেছিলাম: 0।
আন্দ্রেয়াস রাস্টার

উইন্ডোজ ও এক্সমিংয়ের জন্য উশুন্টুর জন্য বাশের ক্ষেত্রে আমার একই সমস্যা ছিল এবং এটি এটিকে সমাধান করেছে! আমাকে সবেমাত্র DISPLAY সেট করতে হয়েছিল localhost:0
বেন রিচার্ডস

কোনও ধারণা কেন DISPLAY=:0ডাব্লুএসএল + এক্সএমিংয়ের জন্য সূক্ষ্মভাবে কাজ করে xeyesতবে এর জন্য নয় ssh -X? না ssh -Xঅন্য স্থানীয় X11 ক্লায়েন্ট থেকে ভিন্নভাবে $ DISPLAY কে ব্যাখ্যা করা? অন্যান্য এক্স 11 ক্লায়েন্টগুলি কি স্বয়ংক্রিয়ভাবে পিছনে পড়ে localhost:0তবে ssh -Xতা হয় না?
মার্কাস কুহান

উপর man Xএটা বলছেন যে প্রদর্শনে খালি হোস্টনাম =: 0 মানে হলো "সবচেয়ে বেশি কার্যকরী স্থানীয় পরিবহন মনোনীত হবে।" তাই ssh -Xবলে তুলনায় এটি করতে আলাদা অ্যালগরিদম ব্যবহার করা যেতে পারে xeyes?
মার্কাস কুহান

@ মার্কাসকুহান সম্ভবত ডাব্লুএসএল + জিংগিং সাইগউইন + জিমিংয়ের থেকে আলাদা। আমি দেখতে পাচ্ছি যে আমি এখন এটি ব্যবহার করছি DISPLAY=:0এবং ssh -Xআনন্দের সাথে ফরোয়ার্ড করছি ।
রোয়াইমা

1

উইন্ডোজ 10 এবং জিমিংয়ের ssh এর সাথে আমি "ভাল" (?) ফলাফল পেয়েছি বলে মনে হচ্ছে:

set DISPLAY=localhost:0

এবং একটি অবজেক্ট সি তৈরি করা: \ দেব \ tty উদাহরণস্বরূপ

mkdir \dev
echo x > \dev\tty

এবং ব্যবহার করে ssh -Y(না ssh -X)।


এছাড়াও / পরিবর্তে, উভয়ই / উভয় github.com/PowerShell/Win32-OpenSSH/issues/1088 github.com/PowerShell/Win32-OptSSH/issues/966
পল সাজাবো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.