sudo over ssh: কোনও tty উপস্থিত নেই এবং কোনও জিজ্ঞাসা কর্মসূচি নির্দিষ্ট নেই


15

আমি এই ত্রুটিটি পেতে থাকি এবং এটি সমাধানের জন্য অনলাইনে আলোচিত বিভিন্ন উপায়ে চেষ্টা করেছি এবং আমার পক্ষে কেউ কাজ করছে না। আমি সেটআপ SSH কী তাই যখন আমি রান আছে 'ssh newton@host.com'এটি স্বয়ংক্রিয়ভাবে আমাকে লগ আমিও এই ব্যবহারকারীকে সেট করেছেন visudoহতে 'newton ALL=(ALL:ALL) ALL' আমি তখন আরো যোগ করার চেষ্টা করেছেন'newton ALL=NOPASSWD: /var/www/script.sh'

দুর্ভাগ্যক্রমে, আমি ssh newton@host.com 'sudo /var/www/script.sh'যতবারই সাইগউইন থেকে চলে আসি ফিরে আসি। আমিও যুক্ত করার চেষ্টা করেছি -t -tতবে এটি আমাকে পাসওয়ার্ডের জন্য অনুরোধ করে।

total size is 21209180  speedup is 314.69
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: 3 incorrect password attempts
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: 3 incorrect password attempts

এটি সাইগউইনের সাথে নির্দিষ্ট নয়; আমি দেখতে পাই একই ssh example.com sudo echo helloলিনাক্স সিস্টেম থেকে অন্য একটি লিনাক্স সিস্টেম ব্যবহার করে। আমি সেই অনুযায়ী আপনার শিরোনাম আপডেট করেছি। আমি আপনার প্রশ্নটিকে ইউনিক্স সাইটে স্থানান্তরের জন্য পতাকাঙ্কিতও করেছি।
কিথ থম্পসন

উত্তর:


10

আপনার চালনার জন্য একটি টার্মিনাল উপলব্ধ থাকতে হবে sudoযাতে এটি আপনাকে পাসওয়ার্ডের জন্য অনুরোধ জানাতে পারে। আপনি যদি কোনও কমান্ডটি পাস করেন তবে sshএটি ধরে নেওয়া হয় যে কমান্ডটি টার্মিনালের প্রয়োজন নেই এবং আপনি পাস না করে কোনও একটি তৈরি করে না -t। দেখা , SSH ভিতরে SSH সহযোগে ব্যর্থ "stdin: একটি TTY নয়" আরো বিস্তারিত ব্যাখ্যার জন্য।

এমনকি আপনি যদি পাসওয়ার্ডটি প্রবেশ করতে সক্ষম না -tহন তবে উইন্ডোজের কারণে আপনার সমস্যাটি সম্ভবত সম্ভব। উইন্ডোজ কনসোলটি ইউনিক্স টার্মিনালটি সম্পূর্ণরূপে অনুকরণ করে না; এই পরিস্থিতিতে সাইগউইন অ্যাপ্লিকেশনগুলির জন্য সঠিকভাবে কোনও টার্মিনাল অনুকরণ করতে কিছু অসুবিধা হতে পারে (আমি সে সম্পর্কে নিশ্চিত নই, নোট)। যে সমস্যা, চালানো হচ্ছে sshযেমন একটি টার্মিনাল এমুলেটর ভিতরে Console2 দেখতে - (Cygwin ডিস্ট্রিবিউশনের মধ্যে অন্তর্ভুক্ত) অথবা Mintty উইন্ডোজ 7 এ Cygwin সাথে একটি শেল ব্যবহার করতে শ্রেষ্ঠ উপায়

আপনি যদি এসএসএইচ পাসফ্রেজটি sudo- তে প্রমাণীকরণের জন্য আপনার পাসওয়ার্ডটি প্রতিস্থাপনের প্রত্যাশা করেন, তবে তা ঘটবে না। সুডোর একটি পাসওয়ার্ড প্রয়োজন (যদি না আপনি NOPASSWDsudoers ফাইলে ট্যাগ যোগ করেন )। মনে রাখবেন আপনি এখনও একটি টার্মিনাল আছে প্রয়োজন এমনকি NOPASSWD, যদি requirettyবিকল্প sudoers ফাইলে সেট করা হয়।

আপনি যদি মূল অ্যাকাউন্টে পাসওয়ার্ডহীন লগইন করতে চান (যা সাধারণত সুরক্ষার দৃষ্টিকোণ থেকে ভাল ধারণা নয়) তবে দুটি অ্যাকাউন্টের মধ্যে মূলত অ্যাকাউন্টে পৌঁছানোর জন্য এসএসএইচ ব্যবহার করুন। দেখুন এসএসএইচের ভিতরে এসএসএইচ "স্টিডিন: টিটিটি নয়" (এর root@host.comজন্য otheruser@computertwo.com) দিয়ে ব্যর্থ হয়


3

আসুন আপনি নোডেজ কমান্ড / বাইনারি কোনও পাসওয়ার্ড সক্ষম করতে চান।

ভিসুডো পরিবর্তন করুন

sudo visudo

কমান্ডের জন্য কোনও পাসওয়ার্ড সক্ষম করতে নিম্নলিখিত লাইন সহ। পাস হ'ল প্রতিটি কমান্ডের পরে কমা এবং স্থান সহ একাধিক কমান্ড।

<user name> ALL = NOPASSWD: /usr/local/bin/node

প্রাক্তন। sunthara ALL = NOPASSWD: /usr/local/bin/node

এখানে চিত্র বর্ণনা লিখুন


1

এসএস-সার্ভার কনফিগারেশন ফাইল সম্পাদনা করুন এবং নীচে যুক্ত করুন:

root# vim /etc/ssh/sshd_config

Match User newton
    PermitTTY yes

কাজ করে না: service sshd restart=>/etc/ssh/sshd_config: line 91: Bad configuration option: User
কিলটেক

পরিবর্তিত হতে পারেMatch User newton
ILMostro_7

1
না এটির অর্থ এই যে আপনি Userনিজের এসএসডি ফাইলে লিখতে পারবেন না কারণ কনফিগারেশন বিকল্পটি বিদ্যমান নেই। (কমপক্ষে আমার সিস্টেমে উবুন্টুতে
মামলাটি

ম্যান-পেজগুলি থেকে: "ম্যাচআইন্টি একটি শর্তসাপেক্ষ ব্লক তৈরি করে। ফাইলটির সাথে: ম্যাচের আর্গুমেন্টগুলি এক বা একাধিক মানদণ্ড-প্যাটার্ন জুটি। উপলভ্য মাপদণ্ডগুলি হ'ল ব্যবহারকারী, গোষ্ঠী, হোস্ট এবং ঠিকানা match অপারেটরগণ ssh_config (5) এর PATTERNSsection এ বর্ণিত ""
ILMostro_7

আমি Matchআপনার উত্তরে একটি ব্লক দেখতে পাচ্ছি না ...
কিলটেক

0

আমি / etc / sudoers এ ভুল করলে আমি এই ত্রুটির মুখোমুখি হয়েছি। এরকম একাধিক কমান্ড নির্দিষ্ট করার পরিবর্তে:

NOPASSWD= /bin/x, /bin/y

আমি এই হিসাবে সংরক্ষণ করেছি:

NOPASSWD= /bin/x /bin/y

অর্থাত্ কমা ছাড়াই। আমি চেষ্টা করার সময় আমি এখন কোনও টিটি প্রাইস মেসেজ পাই না

ssh host 'sudo x'

0

এটি সম্পর্কিত কিনা জানি না তবে যখন আমার '... NOPASSWD: /xyz/script.shl' sudoers ফাইলে ছিল তখন আমি ফাইলটির #!/bin/shellnameশীর্ষে লাইনটি অন্তর্ভুক্ত না করা পর্যন্ত ত্রুটি বার্তাটি পেয়েছি /xyz/script.shl


0

/ etc / sudoers ফাইলে নীচের পরামিতিগুলি মন্তব্য করা আমাকে সহায়তা করেছিল।

# Disable "ssh hostname sudo <cmd>", because it will show the password in clear.
#         You have to run "ssh -t hostname sudo <cmd>".
#
Defaults    requiretty

#
# Refuse to run if unable to disable echo on the tty. This setting should also be
# changed in order to be able to use sudo without a tty. See requiretty above.
#
Defaults   !visiblepw

---> নিম্নলিখিত হিসাবে পরামিতি মন্তব্য

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