ত্রুটিযুক্ত "su" "ভুল প্রমাণীকরণের কারণে X11 সংযোগ প্রত্যাখ্যান করা হয়েছে"


52

মূল হিসাবে, আমি একটি কমান্ড কার্যকর করতে একটি দূরবর্তী হোস্টের সাথে সংযোগ করছি। কেবলমাত্র "স্ট্যান্ডার্ডইজার" এর উপযুক্ত আইডি-ফাইল এবং সঠিক .ssh / কনফিগারেশন রয়েছে, তাই আমি প্রথমে ব্যবহারকারীর স্যুইচ করছি:

su standarduser -c 'ssh -x remotehost ./remotecommand'

কমান্ডটি ঠিকঠাক কাজ করে, তবে আমি "-x" ব্যবহার করেছি (এক্স 11-ফরওয়ার্ডিং অক্ষম করে) এবং এক্স 11 ফরওয়ার্ড অক্ষম করে /etc/ssh/ssh_configথাকলেও আমি ত্রুটি বার্তাটি পেয়েছি:

X11 connection rejected because of wrong authentication.

আমি যখন "মানক" হিসাবে লগ ইন করি তখন আমি ত্রুটি বার্তা পাচ্ছি না।

এটি বেশ বিরক্তিকর কারণ আমি ক্রোন জব ফাইলে কমান্ডটি সংহত করতে চাই। আমি বুঝতে পারি যে ত্রুটি বার্তাটি রুটের .XAuth ফাইলের ভুল প্রমাণীকরণকে বোঝায়, তবে আমি এক্স 11 এর মাধ্যমে সংযোগ দেওয়ার চেষ্টাও করছি না।

কেন "ssh -x" X11 সংযোগটি অক্ষম করছে না এবং ত্রুটি বার্তা নিক্ষেপ করছে না?

আপডেট : বার্তাটি কেবল তখনই প্রদর্শিত হয় যখন আমি কোনও স্ক্রিনের মধ্যে লগ ইন করি, যখন স্থানীয় মেশিনে নিজেই উল্লিখিত কমান্ডটি ব্যবহার করে (পর্দা ছাড়াই), আমি ত্রুটি বার্তা পাই না, তাই ক্রোন দিয়েও এটি ঠিক রাখা উচিত too ।

আমি একই কমান্ডটিও দিয়ে শুরু করেছি -vএবং আশ্চর্যরূপে ত্রুটি বার্তাটি FIRST পেয়েছি, এসএসএইচের স্থিতির তথ্যের আগেও:

root@localhost:~# su standarduser -c 'ssh -x remotehost ./remotecommand'
X11 connection rejected because of wrong authentication.
OpenSSH_6.2p2 Ubuntu-6ubuntu0.1, OpenSSL 1.0.1e 11 Feb 2013

এটি আমাকে নিজেই সমস্যার দিকে পরিচালিত করেছিল, sshত্রুটি বার্তাটি ছুঁড়ে ফেলছে তা নয় , এটি su:

root@localhost:~# su standarduser -c 'echo Hi'
X11 connection rejected because of wrong authentication.
Hi

আমি কেন এই ত্রুটিটি কেবলমাত্র এর মধ্যে পেতে পারি screen? আমি কীভাবে এই ত্রুটি বার্তাটি অক্ষম করতে পারি?


কমান্ডটি আবার চালনা করুন -vএবং ssh বিকল্পগুলিতে যুক্ত করুন, তারপরে আপনার প্রশ্নের মধ্যে আউটপুট আটকান।
জেনি ডি

উত্তর:


79

মনে হয় আপনার রুট কিছু ব্যবহারে X11 অভাব আছে মত যাদু কুকি মধ্যে .Xauthority, আপনার যা standarduserহয়েছে। এটি ঠিক করার উপায় এখানে।

সংক্ষিপ্ত সংস্করণ ( @ বিমাপিনকে ধন্যবাদ )

standarduser@localhost:~$ xauth list | grep unix`echo $DISPLAY | cut -c10-12` > /tmp/xauth
standarduser@localhost:~$ sudo su
root@localhost:~$ xauth add `cat /tmp/xauth`

মনোযোগ দিন: ব্যাকটিক্স পরীক্ষা করুন! এগুলি উদ্ধৃতি দিয়ে প্রতিস্থাপন করা যায় না! sudoদ্বিতীয় কমান্ডটি আরও এগিয়ে নিতে আপনার ইনস্টল করা দরকার !

মূল দীর্ঘ সংস্করণ

জিনিসগুলি ঠিক করতে, প্রথমে কোন ডিসপ্লে নম্বর standarduserব্যবহার করে তা সনাক্ত করুন :

standarduser@localhost:~$ echo $DISPLAY
localhost:21.0

এই ক্ষেত্রে এটি হয় 21.0। দ্বিতীয়ত, standarduserকুকিগুলির তালিকা প্রদর্শন করুন:

standarduser@localhost:~$ xauth list
localhost/unix:1  MIT-MAGIC-COOKIE-1  51a3801fd7776704575752f09015c61d
localhost/unix:21  MIT-MAGIC-COOKIE-1  0ba2913f8d9df0ee9eda295cad7b104f
localhost/unix:22  MIT-MAGIC-COOKIE-1  22ba6595c270f20f6315c53e27958dfe
localhost/unix:20  MIT-MAGIC-COOKIE-1  267f68b51726a8a381cfc10c91783a13

21.0প্রদর্শনের জন্য কুকি তালিকার দ্বিতীয় এবং শেষ হয় 104f

শেষ কাজটি হ'ল এই নির্দিষ্ট কুকিকে মূলের সাথে যুক্ত করা .Xauthority। রুট হিসাবে লগ ইন করুন এবং নিম্নলিখিত করুন:

root@localhost:~$ xauth add localhost/unix:21  MIT-MAGIC-COOKIE-1  0ba2913f8d9df0ee9eda295cad7b104f

আপনি বাশ স্ক্রিপ্টে বা অন্য কোনও ব্যবহারকারী হিসাবে X11 connection rejected because of wrong authenticationচালানোর সময় আপনি ত্রুটিটি প্রশমিত করতে পারেন ।suscreen

অনুপ্রেরণার জন্য এই লোককে ধন্যবাদ ।


মজাদার. আমি চেষ্টা করেছিলাম, কিন্তু এটি আমার পক্ষেও কার্যকর হয়নি। আমার বিশেষ ক্ষেত্রে, আমি প্রায় কোনও কিছু চালু করতে পারি (অন্য এক্সটার্ম, ভার্চুয়ালবক্স), তবে আমি জিডিট চালু করতে পারি না (আমি একই ত্রুটি পাই)। তবে, আমি যদি রুটে পরিবর্তন করি তবে আমি জিডিট চালু করতে পারি। আমি চিঠির নির্দেশগুলি অনুসরণ করেছিলাম তবে কিছুই না nothing অন্য কিছু ভুল হতে হবে।
luis.espinal

@ luis.espinal আশা করি কেউ আপনার বিশেষ সমস্যার সমাধানের পরামর্শ দিচ্ছেন।
ট্রান্সলুসেন্টক্লাউড

1
দীর্ঘ সংস্করণটি কবজির মতো কাজ করেছে, তবে "xauth: (আরজিভি): 1: খারাপ" অ্যাড "কমান্ড লাইন"
স্যাম

1
সংক্ষিপ্ত সংস্করণটি আমার জন্য
সেন্টোস

1
উবুন্টুতে 18.04.1 সংক্ষিপ্ত সংস্করণটি দুর্দান্ত কাজ করে।
সিমাকিস পানাজিওটিস

38

একটি সহজ সমাধান:

1.- ssh user@host

2.- $ sudo su

3.- # xauth merge /home/user/.Xauthority

এখানেই শেষ

অবশ্যই $DISPLAYভেরিয়েবল সেট করতে হবে।


1
এটি আশাব্যঞ্জক তবে কিছুটা অসম্পূর্ণ sounds ঠিক কীভাবে $DISPLAYভেরিয়েবল সেট করবেন সে সম্পর্কিত তথ্য যুক্ত করতে আপনি কি আপত্তি করবেন ? আমি বিশ্বাস করি যে এই ছোট সংযোজনটি আপনার উত্তরে অতিরিক্ত কণ্ঠ দেবে।
ট্রান্সলুসেন্টক্লাউড

এটি আমার পক্ষে কাজ করেছে, যখন @ ট্রান্সলুসেন্টক্লাউডের উত্তর দেয় নি। কমান্ড লাইন FYI থেকে মূল হিসাবে অ্যান্ড্রয়েড এসডিকে পরিচালককে চালনার চেষ্টা করার সময় আমি মূলত সমস্যার মুখোমুখি হয়েছি।
স্কটিসিয়াস

2
এটি আমার জন্য বাক্স থেকে কার্যকর হয়নিxauth: file /root/.Xauthority does not exist
tdc

2
টিডিসি, এটি কেবল একটি সতর্কবার্তা, ত্রুটি নয়, xauth ফাইলটি তৈরি করবে - আপনি যদি দ্বিতীয়বার কমান্ডটি চালান তবে আপনি এটি দেখতে পাবেন না।
ভ্লাদিমির পানতেলিভ 25'16

1
যখন আপনি কেবল অনুলিপি করুন এবং পেস্ট করতে পারেন তখন কারও কিছু শিখতে হবে! ধন্যবাদ! উপায় সহজ।
সাইরেন্স

7

আমার চাহিদা কিছুটা আলাদা ছিল তাই আমি কিছুটা আলাদা সমাধান নিয়ে এসেছি। অন্য ব্যবহারকারী হিসাবে (যিনি মূল নয়) হিসাবে এক্স 11 অ্যাপ চালানোর জন্য আমার দক্ষতার প্রয়োজন ছিল। সেন্টোস চলছে, সুতরাং আমার কাছে মিষ্টি গ্যাক্সুডো সরঞ্জাম নেই উবুন্টু সহ ভাগ্যবান কুকুরগুলির কাছে যা জাওথ যাদু করে।

আমি লগইন করতে, ব্যবহারকারীর স্যুইচ করতে এবং একটি অ্যাপ্লিকেশন চালাতে সত্যিই কিছু কাস্টম স্ক্রিপ্টগুলি বের করতে চাইনি; এটা আমার কাছে কিছুটা অতিরিক্ত প্রয়োজন বলে মনে হচ্ছে।

প্রথম ধাপ:

Do XAUTHORITY কে সুডো সেশন জুড়ে বহন করার অনুমতি দিন।

এই লাইনটি / etc / sudoers এ বাকি env_keep বিবৃতিতে যুক্ত করুন:

Defaults    env_keep += "DISPLAY XAUTHORIZATION XAUTHORITY"

ধাপ দুই:

আপনার টার্গেট ব্যবহারকারীকে আপনার .অ্যাকটিরিটিটি পড়ার ক্ষমতা দেওয়ার অনুমতি দিন (হ্যাঁ আমি জানি, সুরক্ষা চিৎকার করুন! আপনি যা চান তা সব)। যারা কেবল কমান্ডগুলি রুট হিসাবে চালানোর ক্ষমতা চান তাদের জন্য এটি এড়িয়ে যেতে পারে।

লক্ষ্য ব্যবহারকারী আমার মতো একই গোষ্ঠীটি ভাগ করে তাই আমি কেবল গ্রুপ পড়ার অনুমতিগুলি চালু করি:

$ chmod g+r user ~/.Xauthority

পদক্ষেপ তিন:

CentOS ডিফল্টরূপে A XAUTHORITY এর মানকে পপুলেট করে না। আপনার প্রোফাইলে একটি লাইন যুক্ত করুন (আমার ~ / .bash_profile হয়):

export XAUTHORITY=$HOME/.Xauthority

এটাই. আর কোন টুইট। পলিসিকিটকে কাজের জন্য পেতে .XML লেখা নেই। প্রতিটি লগইনের জন্য কোনও চলমান স্ক্রিপ্ট নেই। জাওথের অনুলিপি করতে দুবার সুডোর দরকার নেই। এখান থেকে, আপনি কেবল:

$ sudo -u user xcalc

মোবাএক্সটার্মের সাথে দুর্দান্ত কাজ করে।


সেন্টোস on এ ভিএম কনসোল পাওয়ার সাথে আমার যে সমস্যাটি ছিল তা সমাধান করার জন্য এটিই আমার প্রয়োজন ছিল কেবল আমার উদ্দেশ্যটির জন্য আমার কেবল তিনটি ধাপে করা দরকার ছিল (এবং অবশ্যই এটি নিশ্চিত করা উচিত যে এক্স 11 ফরোয়ার্ডিং হ্যাঁ / এ / তে সেট করা হয়েছে) SSH / sshd_config)। ধন্যবাদ।
অন্ধকার

অসাধারণ! এই উত্তর! ধন্যবাদ @W স্মিথ
tmow

1

আপনার লক্ষ্য ব্যবহারকারীকে পুরোপুরি স্যুইচ করা উচিত, অর্থাত্ ( ) -দিয়ে " " ব্যবহার করুন use যদি তা না হয়, রুটের এক্স স্টাফগুলি পরিবেশের চারপাশে টেনে আনা হবে।susu - standarduser ...


0

যেহেতু আমি প্রায়শই একটি রুট-স্কোয়াশড নেটওয়ার্ক ফাইল ভাগ করে নেব, উপরোক্ত সমাধানগুলির কোনওটিই আমার পক্ষে কার্যকর হয়নি। (xubuntu 14.04)। আমি নিম্নলিখিত স্ক্রিপ্টটি একসাথে রেখেছি, যা আমার সিস্টেমে কাজ করে। এটি আপনার উপর কাজ করতে পারে। আবার, এটি নাও হতে পারে তবে এটি চেষ্টা করার জন্য নিখরচায় ...

অনুমান যে আমি -Y বিকল্পটি ব্যবহার করছি using

#!/bin/bash  
if [[ $DISPLAY =~ localhost(:[[:digit:]]+) ]] ;then
    port=${BASH_REMATCH[1]}
else
    echo "Unexpected DISPLAY $DISPLAY"
    exit 1
fi
h=$(hostname)
cookie=$(xauth list|grep $h.*$port)
sudo -i xauth -i add $cookie
sudo -i $*

লাইনটি cookie=$(xauth list|grep $h.*$port)intended বন্দরটি কুকি মানের অংশ হওয়ার কারণে যদি উদ্দেশ্য থেকে বেশি মিলতে পারে। নিরাপদ: cookie=$(xauth list) cookie=${c%% *}বা cookie=$(xauth list |grep $h[^ ]*$port)
পেপা

0

আমার ক্ষেত্রে, আমি যখন ত্রুটির মুখোমুখি হয়েছিলাম তখন আমার একটি এনক্রিপ্ট করা ব্যবহারকারী ডিরেক্টরি ছিল। কল করার পরে ecrypt-mount-private, এটি ত্রুটি থেকে মুক্তি পেয়েছে এবং আমাকে এক্স 11 ফরোয়ার্ডিং চালিয়ে যাওয়ার অনুমতি দিয়েছে।

যদি আপনার হোম ফোল্ডারে এনক্রিপ্ট করা হয় তা নির্ধারণ করার জন্য, আপনাকে এই চেষ্টা করতে পারেন (অনুযায়ী এই উত্তর ): ls -A /home। আপনি যদি কোনও .ecryptfsফোল্ডার দেখতে পান তবে আপনার হোম ডিরেক্টরিটি সম্ভবত এনক্রিপ্ট করা আছে, সেক্ষেত্রে উত্তরটির শুরুতে আমি যে কমান্ডটি দিয়েছি তা করতে চেষ্টা করতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.