এসএসএইচ এক্স 11 কাজ করছে না


15

আমার একটি বাড়ি এবং কাজের কম্পিউটার রয়েছে, বাড়ির কম্পিউটারে একটি স্থির আইপি ঠিকানা রয়েছে।

আমি যদি আমার ওয়ার্ক কম্পিউটার থেকে আমার বাড়ির কম্পিউটারে এসএসএস করি তবে এসএসএস সংযোগটি কাজ করে তবে এক্স 11 অ্যাপ্লিকেশন প্রদর্শিত হয় না।

আমার /etc/ssh/sshd_configবাড়িতে:

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes

কর্মক্ষেত্রে আমি নিম্নলিখিত আদেশগুলি চেষ্টা করেছি:

xhost + home HOME_IP
ssh -X home
ssh -X HOME_IP
ssh -Y home
ssh -Y HOME_IP

আমার /etc/ssh/ssh_configকাজ:

Host *
ForwardX11 yes 
ForwardX11Trusted yes

আমার ~/.ssh/configকাজ:

Host home
HostName HOME_IP
User azat
PreferredAuthentications password
ForwardX11 yes

আমার ~/.Xauthorityকাজ:

-rw------- 1 azat azat 269 Jun  7 11:25 .Xauthority

আমার ~/.Xauthorityবাড়িতে:

-rw------- 1 azat azat 246 Jun  7 19:03 .Xauthority

কিন্তু এটি কাজ করে না

আমি ঘরে একটি ssh সংযোগ করার পরে:

$ echo $DISPLAY
localhost:10.0

$ kate
X11 connection rejected because of wrong authentication.
X11 connection rejected because of wrong authentication.
X11 connection rejected because of wrong authentication.
X11 connection rejected because of wrong authentication.
X11 connection rejected because of wrong authentication.
X11 connection rejected because of wrong authentication.
X11 connection rejected because of wrong authentication.
X11 connection rejected because of wrong authentication.
kate: cannot connect to X server localhost:10.0

আমি iptablesবাড়িতে ব্যবহার করি , তবে আমি 22 বন্দরটি মঞ্জুরি দিয়েছি what আমি যা যা পড়েছি তা অনুসারে need

UPD। সঙ্গে-vvv

...
ডিবাগ 2: কলব্যাক শুরু
ডিবাগ 2: x11_get_proto: / usr / বিন / xauth তালিকা: 0 2> / দেব / নাল
ডিবাগ 1: প্রমাণীকরণের স্পোফিংয়ের সাথে এক্স 11 ফরোয়ার্ডের অনুরোধ করা হচ্ছে।
ডিবাগ 2: চ্যানেল 1: এক্স 11-রিক্কের অনুরোধ 1
ডিবাগ 2: ক্লায়েন্ট_অ্যাসিশন 2_সেটআপ: আইডি 1
ডিবাগ 2: এফডি 3 সেটিং টিসিপি_নোড্লে
ডিবাগ 2: চ্যানেল 1: পিটিআই-রিক্কের অনুরোধ 1
...

যখন চালু করার চেষ্টা করুন kate:

ডিবাগ 1: ক্লায়েন্ট_ইনপুট_চ্যানেল_পেন: সিটিপি এক্স 11 আরচান 2 জিতে 65536 সর্বোচ্চ 16384
ডিবাগ 1: ক্লায়েন্ট_রেকুস্ট_এক্স 11: 127.0.0.1 55486 থেকে অনুরোধ
ডিবাগ 2: এফডি 8 সেটিংস O_NONBLOCK
ডিবাগ 3: এফডি 8 হ'ল ও_নব্লক
ডিবাগ 1: চ্যানেল 2: নতুন [এক্স 11]
ডিবাগ 1: এক্স 11 নিশ্চিত করুন
ডিবাগ 2: এক্স 11 সংযোগটি বিভিন্ন প্রমাণীকরণের প্রোটোকল ব্যবহার করে।
X11 সংযোগ ভুল প্রমাণীকরণের কারণে বাতিল হয়েছে।
ডিবাগ 2: এক্স 11 2 i0 / o0 প্রত্যাখ্যান করেছে
ডিবাগ 2: চ্যানেল 2: পঠন ব্যর্থ হয়েছে
ডিবাগ 2: চ্যানেল 2: ক্লোজ_ড্রেড
ডিবাগ 2: চ্যানেল 2: ইনপুট ওপেন -> ড্রেন
ডিবাগ 2: চ্যানেল 2: আইবুফ খালি
ডিবাগ 2: চ্যানেল 2: প্রেরণ করুন
ডিবাগ 2: চ্যানেল 2: ইনপুট ড্রেন -> বন্ধ
ডিবাগ 2: চ্যানেল 2: লেখা ব্যর্থ হয়েছে
ডিবাগ 2: চ্যানেল 2: ক্লোজ_রাইট
ডিবাগ 2: চ্যানেল 2: আউটপুট ওপেন -> বন্ধ
ডিবাগ 2: এক্স 11 2 আই 3 / ও 3 বন্ধ হয়েছে
ডিবাগ 2: চ্যানেল 2: বন্ধ পাঠান
ডিবাগ 2: চ্যানেল 2: আরসিভিডি বন্ধ
ডিবাগ 2: চ্যানেল 2: মারা গেছে
ডিবাগ 2: চ্যানেল 2: আবর্জনা সংগ্রহ
ডিবাগ 1: চ্যানেল 2: ফ্রি: এক্স 11, এনচেনেল 3
ডিবাগ 3: চ্যানেল 2: স্থিতি: নিম্নলিখিত সংযোগগুলি উন্মুক্ত:
  # 1 ক্লায়েন্ট-সেশন (টি 4 আর 0 আই 0/0 ও 0/0 এফডি 5/6 সিসি -1)
  # 2 এক্স 11 (টি 7 আর 2 আই 3/0 ও 3/0 এফডি 8/8 সিসি -1)

# উপরের মতো একই প্রায় 7 বার পুনরাবৃত্তি করুন

কেট: এক্স সার্ভার লোকালহোস্টের সাথে সংযোগ স্থাপন করতে পারে না: 10.0

UPD2 দয়া করে আপনার লিনাক্স বিতরণ এবং সংস্করণ নম্বর সরবরাহ করুন।
আপনি কি এক্স বা অন্য কোনও কিছুর জন্য নিজেকে ডিফল্ট জিনোম বা কে-ডি-কে পরিবেশ ব্যবহার করছেন?

আজাত: ~ ded কেডেড 4-রূপান্তর
Qt: 4.7.4
কেডিএ বিকাশ প্ল্যাটফর্ম: 4.6.5 (4.6.5)
কেডিএ ডিমন: $ আইডি $

আপনি কি টার্মিনাল উইন্ডো থেকে সরাসরি কমান্ড লাইনে এসএসকে অনুরোধ করছেন?
আপনি কোন টার্মিনাল ব্যবহার করছেন? এক্সটার্ম, জিনোম-টার্মিনাল, বা?
এক্স পরিবেশে আপনি টার্মিনালটি কীভাবে চালু করবেন? একটি মেনু থেকে? Hotkey? বা?

টার্মিনাল এমুলেটর থেকে `ইয়াকুয়াক`
ম্যানুয়ালি `Ctrl + N` টিপুন এবং কমান্ড লিখুন

আপনি কি একই টার্মিনাল উইন্ডো থেকে সিকি চালাতে পারবেন যেখানে ssh -X ব্যর্থ হয়?

`xeyes` - ইনস্টল করা নেই
তবে `কেট` বা অন্য কোনও কেডি অ্যাপ্লিকেশন চলছে

আপনি কি ssh কমান্ডটি একই ব্যবহারকারীর মতো প্রার্থনা করছেন যা আপনি এক্স সেশনে লগইন করেছেন?
From the same user

UPD3

আমি sshউত্সগুলি ডাউনলোডও করি এবং debug2()এটির সংস্করণটি আলাদা বলে কেন রিপোর্ট করা হয় তা লিখতে এটি
কিছু কুকি দেখতে পায় এবং তার মধ্যে একটি খালি রয়েছে, অন্যটিMIT-MAGIC-COOKIE-1

উত্তর:


21

Ssh এক্স ফরওয়ার্ডিং কাজ না করার কারণটি ছিল আমার একটি /etc/ssh/sshrcকনফিগার ফাইল।

sshd(8)ম্যান পৃষ্ঠার শেষ অংশে বলা হয়েছে:

যদি ~/.ssh/rcবিদ্যমান থাকে তবে এটি চালান; অন্যথায় যদি /etc/ssh/sshrcউপস্থিত থাকে তবে এটি চালায়; অন্যথায় xauth চালায়

সুতরাং আমি /etc/ssh/sshrcসার্ভারের সাইডে (sshd ম্যান পৃষ্ঠা থেকেও) নিম্নলিখিত কমান্ডগুলি যুক্ত করছি :

if read proto cookie && [ -n "$DISPLAY" ]; then
        if [ `echo $DISPLAY | cut -c1-10` = 'localhost:' ]; then
                # X11UseLocalhost=yes
                echo add unix:`echo $DISPLAY |
                    cut -c11-` $proto $cookie
        else
                # X11UseLocalhost=no
                echo add $DISPLAY $proto $cookie
        fi | xauth -q -
fi

এবং এটি কাজ করে!


আপনি এটি ক্লায়েন্ট বা সার্ভার সাইডে করেন?
alfonx

একটি সার্ভার দিকে। (/ etc / ssh / sshrc ক্লায়েন্ট সংযুক্ত থাকলে কার্যকর করা হয়)
আজাত

2

যে কোনও সময় আপনার ssh নিয়ে সমস্যা হচ্ছে, আপনাকে প্রথমে করণীয় হ'ল ক্লায়েন্টটি -vঅন্যদের পরিদর্শন করার জন্য সেই আউটপুট সরবরাহ করার বিকল্প সহ চালনা করে :

ssh -v user@somewhere

আমি অনুমান করতে যাচ্ছি যে সমস্যাটি আপনার স্থানীয় সিস্টেমে রয়েছে। আপনি কীভাবে ssh কমান্ডটি চাচ্ছেন? আপনি কি খোলসে নিজে এটি চালাচ্ছেন? বা এটি কোনও স্ক্রিপ্টের অংশ হিসাবে কার্যকর করা হচ্ছে? উভয় ক্ষেত্রেই আপনি নিশ্চিত করতে চাইবেন যে আপনার স্থানীয় সিস্টেমে DISPLAYপরিবেশ সঠিকভাবে সেট হয়েছে। এটি দূরবর্তী দিক থেকেও সঠিকভাবে সেট করা দরকার, তবে সেই মানটি স্থানীয় দিকের চেয়ে দূরবর্তী দিক থেকে আলাদা হবে

আপনি যা লিখেছেন তা থেকে মনে হচ্ছে এটি দূরবর্তী হোস্টে সঠিকভাবে সেট করা হচ্ছে (এবং এক্সটেনশানের মাধ্যমে এক্স -11 ফরোয়ার্ডিং সঠিকভাবে ssh দ্বারা সেট আপ করা হচ্ছে)। রিমোট সিস্টেমে আপনার রয়েছে:

$ echo $DISPLAY
localhost:10.0

স্থানীয় দিক থেকে কী দেখাচ্ছে? মানটি প্রতিধ্বনিত করার পাশাপাশি আপনি সেই শেলটি থেকে একটি এক্স অ্যাপ্লিকেশন শুরু করে উভয়ই শেলটিতে আছেন কিনা তা পরীক্ষা করা সহজ হওয়া উচিত ... আপনি xeyesঅবশ্যই এই ধরণের পরীক্ষার জন্য সম্মানজনক ব্যবহার করতে পারেন অবশ্যই! :)

অন্যদিকে, আপনি যদি কোনও স্ক্রিপ্ট থেকে ssh কমান্ডটি চাচ্ছেন বা হটকির সাথে সংযুক্ত আছেন তবে এটি আপনার প্রত্যাশিত পরিবেশের উত্তরাধিকারী হতে পারে না, তাই DISPLAYস্থানীয় দিকের পরিবেশ পরিবর্তনশীল একেবারেই সেট নাও হতে পারে।

এছাড়াও, যেহেতু মনে হচ্ছে আপনি নিজের .Xauthorityফাইলটির সাথে ঝাঁকুনি দিচ্ছেন আপনি এটিকে পুরোপুরি মুছতে চান, তারপরে আপনার এক্স সেশন থেকে লগ আউট করুন এবং লগ ইন করুন যাতে এটি স্বয়ংক্রিয়ভাবে এটি পুনরায় তৈরি হবে। আপনার সাথে কৌতুক করার খুব কমই দরকার আছে .Xauthority, তাই চেষ্টা করা সম্ভবত একটি বেপরোয়া পদক্ষেপ যা সাহায্য করবে না।

স্থানীয় দিকে আপনার যা দেখা উচিত তা হ'ল:

$ echo $DISPLAY
:0.0

সঠিকভাবে কনফিগার করার সিস্টেমে আপনি যদি শেলটি খোলেন তবে আপনার নিজের হাতে এটি সেট করার দরকার নেই, এটি আপনার শেলটি শুরু করা পরিবেশ থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হওয়া উচিত। তবে আমি উইন্ডো ম্যানেজার / হটকি কনফিগার দেখেছি যা পরিবেশের পরিবর্তনশীল উত্তরাধিকার সঠিকভাবে পরিচালনা করে না। যদি আপনার লিনাক্স সিস্টেম চালু থাকে gnome-sessionবা kde-sessionআপনি নিজের শেল বা স্ক্রিপ্টগুলি লঞ্চ করতে ব্যবহার করেন তবে আপনার এক্স সেশন এনভায়রনমেন্ট ভেরিয়েবলগুলি পরিবেশের ভেরিয়েবলের উত্তরাধিকার সম্পর্কে উবুন্টু ডকুমেন্টেশনে বর্ণিত হিসাবে সঠিকভাবে সেট করা উচিত :

যখন একটি পিতামাতার প্রক্রিয়া একটি শিশু প্রক্রিয়া তৈরি করে, উদাহরণস্বরূপ যখন আমরা টার্মিনাল থেকে "gedit" কমান্ডটি চালিত করি এবং "বাশ" (পিতামহীন প্রক্রিয়া) "gedit" (শিশু প্রক্রিয়া) তৈরি করে, তখন শিশু প্রক্রিয়াটি সমস্ত পরিবেশের ভেরিয়েবলের উত্তরাধিকার সূত্রে প্রাপ্ত হয় এবং অভিভাবক প্রক্রিয়াটির মান values

...

দ্রষ্টব্য: জিনোম গ্রাফিকাল ডেস্কটপ পরিবেশে, জিনোম-সেশন হ'ল ডেস্কটপে চলমান সমস্ত প্রক্রিয়ার মূল প্রক্রিয়া। এই সত্যটি (উত্তরাধিকার সূত্রের সাথে) আমাদের পরিবেশের ভেরিয়েবলগুলির সাথে আমাদের ডেস্কটপের ক্রিয়াকলাপকে শক্তিশালীভাবে প্রভাবিত করার আমাদের দক্ষতার মূল চাবিকাঠি। কেডি-তে সমতুল্য প্রক্রিয়াটি হ'ল কেডি-সেশন।

আপডেট

থেকে আউটপুট পোস্ট করার জন্য ধন্যবাদ ssh -vvv। এই ক্ষেত্রে -vvvকেবল বনাম থেকে অতিরিক্ত ভার্বোসটি -vসহায়ক। ডিবাগ আউটপুট আমাকে বলে যে এক্স 11 ফরওয়ার্ডিং সঠিকভাবে সেট আপ হচ্ছে:

debug2: x11_get_proto: /usr/bin/xauth  list :0 2>/dev/null
debug1: Requesting X11 forwarding with authentication spoofing.
debug2: channel 1: request x11-req confirm 1

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

আপনার স্থানীয় সিস্টেম এবং আপনি কীভাবে ssh কমান্ডটি চাচ্ছেন সে সম্পর্কে আরও তথ্য এই মুহুর্তে সহায়ক হবে।

  • দয়া করে আপনার লিনাক্স বিতরণ এবং সংস্করণ নম্বর সরবরাহ করুন।
  • আপনি কি এক্স বা অন্য কোনও কিছুর জন্য নিজেকে ডিফল্ট জিনোম বা কে-ডি-কে পরিবেশ ব্যবহার করছেন?
  • আপনি কি টার্মিনাল উইন্ডো থেকে সরাসরি কমান্ড লাইনে এসএসকে অনুরোধ করছেন?
  • আপনি কোন টার্মিনাল ব্যবহার করছেন? এক্সটার্ম, জিনোম-টার্মিনাল, বা?
  • এক্স পরিবেশে আপনি কীভাবে টার্মিনালটি চালু করবেন? একটি মেনু থেকে? Hotkey? বা?
  • আপনি কি xeyesএকই টার্মিনাল উইন্ডো থেকে চালাতে পারেন যেখানে ssh -Xব্যর্থ হয়?
  • আপনি কি ssh কমান্ডটি একই ব্যবহারকারীর মতো প্রার্থনা করছেন যা আপনি এক্স সেশনে লগইন করেছেন?

এই শেষ আইটেমটি গুরুত্বপূর্ণ। যদি আপনি অন্য ব্যবহারকারী হিসাবে ssh চালাচ্ছেন (উদাহরণস্বরূপ, আপনি যদি ব্যবহারকারী টার্মিনাল উইন্ডোর পরিবর্তে একটি রুট টার্মিনাল উইন্ডো খুলে ফেলেছেন), তবে আপনার DISPLAY=:0অনুমতি না থাকায় আপনি সুস্পষ্টভাবে সেট করে থাকলেও আপনি এই সমস্যার মুখোমুখি হবেন অন্য ব্যবহারকারী হিসাবে ডিফল্টভাবে এক্স সার্ভারের সাথে সংযোগ করুন (এমনকি মূল হিসাবে!)


প্রশ্ন বডি আপডেট করুন
আজাত

এটিকে আরও ডিবাগ করার জন্য আরও তথ্যের জন্য আমি একটি নতুন আপডেটেড বিভাগ যুক্ত করেছি ।
অ্যাকুলিচ

আমি t set DISPLAY` ম্যানুয়ালি করি না। বাস্তবে আমি মনে করি যে X -nolistenস্থানীয় মেশিনে
আজাত

-nolistenএই সমস্যাটির সাথে কোনও সম্পর্ক নেই। যতদূর এক্স সম্পর্কিত, এটি আপনার দূরবর্তী ssh সংযোগ সম্পর্কে কিছুই জানে না। এক্স এর কাছে এটি অন্য কোনও স্থানীয় প্রোগ্রামের মতো দেখাচ্ছে।
অ্যাকুলিচ

1
sshdসমস্যাটি যদি সার্ভার-সাইডে থাকে তবে অতিরিক্ত ভার্বোসিটি দিয়ে অগ্রভাগেও শুরু করা যেতে পারে।
0xC0000022L

1

আপনার কনফিগারগুলি ঠিক আছে বলে মনে হচ্ছে, তবে এজেনদের পরামর্শ অনুসারে "ssh -X হোম" চেষ্টা করে দেখুন।

এছাড়াও, যদি অন্য সমস্ত কিছু ব্যর্থ হয় তবে এটি ব্যবহার করে দেখুন:

আপনি নিজের হোম মেশিনটি কাজ থেকে স্যাশ করার পরে "হোম" টাইপটিতে:

xauth list

তারপরে, "work" এ টাইপ করুন

xauth

যা আপনাকে একটি "xauth>" প্রম্পট দেবে। এখান থেকে "অ্যাড" টাইপ করুন, তারপরে "xauth তালিকার" আউটপুট একবারে একটি লাইন অনুলিপি করুন (প্রতিটি লাইন "অ্যাড" দ্বারা প্রবর্তিত)। উদাহরণ স্বরূপ:

someguy@work:~$ xauth
Using authority file /var/run/gdm/auth-for-someguy-4MYV85/database
xauth> add work/unix:0  MIT-MAGIC-COOKIE-1  781cc753194fd55ecdf6c4cf105c40e3
xauth> 

আমাদের জানতে দাও.


আমি ইতিমধ্যে চেষ্টা করেছি ssh -X home(পোস্টে লিখুন)। Xauth সম্পর্কে আমি আগামীকাল চেষ্টা করব।
আজাত

আমি চেষ্টা করি xauth list & xauth add, তবে এখনও কাজ করে না
আজাত

আমি এই রেকর্ডটি যুক্ত করেছি xauth add azat/unix:10 MIT-MAGIC-COOKIE-1 ad01c582768c832ff591277b27863bc7(কারণ $ DISPLAY = লোকালহোস্ট: 10.0), যদি এটি সাহায্য করতে পারে
আজাত

-1

আপনি যদি আপনার স্থানীয় ডিসপ্লেতে ( work) আপনার দূরবর্তী অ্যাপ্লিকেশনগুলি প্রদর্শন করতে চান বা আপনি সেগুলি দূরবর্তী সিস্টেমে প্রদর্শন করতে চান তবে আমি স্পষ্টভাবে বুঝতে পারি না home

প্রথম ক্ষেত্রে, আমি মনে করি ssh -X hostযে যথেষ্ট পরিমাণে হওয়া উচিত, এক্সহোস্ট ব্যবহারের কোনও প্রয়োজন ছাড়াই।

দ্বিতীয় ক্ষেত্রে, আপনাকে xhost ব্যবহার করার যে সিস্টেমটি প্রয়োজন homeতা হ'ল এবং এটি যথেষ্ট নয়, আপনাকে ডিসপ্লে ভেরিয়েবলটিও রফতানি করতে হবে।

xhost +work
export DISPLAY=:0.0

আপনি কী করতে চান তা সম্পর্কে আমি পুরোপুরি নিশ্চিত নই ... এবং আমি জানি না যে প্রথমদিকে আপনার সিস্টেম এবং আমার মধ্যে কী পার্থক্য রয়েছে এবং অন্যদিকে আপনার ক্ষেত্রে কী সঠিক কনফিগারেশন প্রয়োজন (যেমন হিসাবে আমি বিশেষজ্ঞ not _ ^) নই। আশা করি এটি আপনাকে কিছু উপায়ে সহায়তা করবে, কারণ এটিও কনফিগারেশনগুলি আমার পক্ষে কাজ করেছে।


আমি ইতিমধ্যে চেষ্টা করেছি ssh -X home(পোস্টে লিখুন)। হ্যাঁ আমি আমার স্থানীয় প্রদর্শনে দূরবর্তী অ্যাপ্লিকেশনগুলি প্রদর্শন করতে চাই।
আজাত
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.