আপনি যদি এসএসএইচ-এর মাধ্যমে এক্স সংযোগটি ফরোয়ার্ড করতে চান তবে আপনাকে এটি সার্ভার সাইড এবং ক্লায়েন্ট উভয় পক্ষেই সক্ষম করতে হবে। (ডিস্ট্রিবিউশন উপর নির্ভর করে, সক্রিয় হতে পারে অথবা ডিফল্টরূপে নিষ্ক্রিয়।) সার্ভার দিকে, নিশ্চিত করুন যে আপনি উপস্থিত রয়েছে কিনা X11Forwarding yes
এ /etc/sshd_config
(অথবা /etc/ssh/sshd_config
বা যেখানেই কনফিগারেশন ফাইল)। ক্লায়েন্টের পক্ষ -X
থেকে, ssh
কমান্ডের বিকল্পটি পাস করুন বা ForwardX11
আপনার মধ্যে রাখুন ~/.ssh/config
।
আপনি যদি চালনা করেন তবে আপনার ssh -X localhost
এটি দেখতে পাওয়া উচিত $DISPLAY
(সম্ভবত) localhost:10.0
। এর সাথে বৈসাদৃশ্য করুন :0.0
, যখন আপনি এসএসএইচ এর সাথে সংযুক্ত না হন তখন মান হয়। ( .0
অংশটি বাদ দেওয়া যেতে পারে; এটি একটি স্ক্রিন নম্বর, তবে একাধিক স্ক্রিন খুব কমই ব্যবহৃত হয়)) এক্স ডিসপ্লেতে দুটি রূপ রয়েছে যা আপনার মুখোমুখি হওয়ার সম্ভাবনা রয়েছে:
- স্থানীয় প্রদর্শন, এর আগে কিছুই নেই
:
।
- টিসিপি প্রদর্শন করে, এর আগে একটি হোস্টনাম সহ
:
।
এর ssh -X localhost
সাহায্যে আপনি উভয় ডিসপ্লেতে এক্স সার্ভারটি অ্যাক্সেস করতে পারবেন তবে অ্যাপ্লিকেশনগুলি একটি পৃথক পদ্ধতি ব্যবহার করবে: :NUMBER
স্থানীয় সকেট এবং ভাগ করা মেমরির মাধ্যমে সার্ভারটি অ্যাক্সেস করে, যেখানে HOSTNAME:NUMBER
টিসিপি-র মাধ্যমে সার্ভারটি অ্যাক্সেস করে, যা কিছু ধীরে ধীরে এক্সটেনশান অক্ষম করে।
নোট করুন যে কোনও এক্স সার্ভার অ্যাক্সেস করার জন্য আপনার একধরণের অনুমোদনের প্রয়োজন, যাকে একটি কুকি বলা হয় এবং সাধারণত ফাইলে পর্দার আড়ালে রাখা হয় ~/.Xauthority
। আপনি যদি কোনও আলাদা ব্যবহারকারীর অ্যাকাউন্ট অ্যাক্সেস করতে ssh ব্যবহার করে থাকেন, বা যদি আপনার বিতরণটি কুকিগুলিকে অন্য কোনও ফাইলে রাখে তবে আপনি দেখতে পাবেন যে DISPLAY=:0
এটি এসএসএইচ অধিবেশনটির মধ্যে কাজ করে না (তবে ssh -X
এটি যদি সার্ভারে সক্ষম হয় তবে আপনি কখনও পাবেন না) সঙ্গে জগাখিচুড়ি প্রয়োজন XAUTHORITY
যখন করছেন ssh -X
)। যদি সমস্যা হয় তবে আপনাকে পরিবেশের পরিবর্তনশীল সেটXAUTHORITY
করতে হবে বা অন্য ব্যবহারকারীর কুকিগুলি গ্রহণ করতে হবে ।
আপনার আসল প্রশ্নের উত্তর দিতে:
স্থানীয় প্রদর্শনগুলি একটি সকেটের সাথে সামঞ্জস্য করে /tmp/.X11-unix
।
(cd /tmp/.X11-unix && for x in X*; do echo ":${x#X}"; done)
রিমোট ডিসপ্লেগুলি 6000 এর উপরে টিসিপি বন্দরগুলির সাথে সমান; মেশিন এম তে ডিসপ্লে নম্বর এন অ্যাক্সেস করা মেশিন এম তে টিসিপি পোর্ট 6000 + এন সাথে সংযুক্ত করে সম্পন্ন করা হয় মেশিন এম থেকে নিজেই:
netstat -lnt | awk '
sub(/.*:/,"",$4) && $4 >= 6000 && $4 < 6100 {
print ($1 == "tcp6" ? "ip6-localhost:" : "localhost:") ($4 - 6000)
}'
(এই বুলেট পয়েন্টের বাকি অংশগুলি কেবল একাডেমিক আগ্রহের জন্য))
অন্য একটি মেশিন থেকে, আপনি nmap -p 6000-6099 host_name
সাধারণ ব্যাপ্তিতে টিসিপি পোর্টগুলি খোলার জন্য তদন্ত করতে ব্যবহার করতে পারেন । বিশেষ করে লুপব্যাক ইন্টারফেসের বাইরে এক্স সার্ভারগুলি টিসিপি সকেটে শুনতে পাওয়া আজকাল বিরল।
কড়া কথায় বলতে গেলে অন্য অ্যাপ্লিকেশনটি এক্স সার্ভার দ্বারা সাধারণত ব্যবহৃত পরিসরে একটি বন্দর ব্যবহার করতে পারে। কোন প্রোগ্রামে পোর্টটি খোলা আছে তা পরীক্ষা করে কোনও এক্স সার্ভার শুনছে কিনা তা আপনি বলতে পারেন।
lsof -i -n | awk '$9 ~ /:60[0-9][0-9]$/ {print}'
যদি এটি দ্ব্যর্থক কিছু দেখায় sshd
, এটি কোনও এক্স সার্ভার বা কাকতালীয় কিনা তা নিশ্চিত করার কোনও উপায় নেই।
( DISPLAY=:0 yourapp & )
।