SSH কমান্ডের আর্গুমেন্ট হিসাবে কমান্ড প্রদান করা হয় যখন SSH সমস্ত টাইপ করা পাসওয়ার্ড দৃশ্যমান করে তোলে


45

আমি যদি এটি চালাও:

ssh user@server 'mysql -u user -p'

যখন এটি MySQL পাসওয়ার্ডের জন্য আমাকে জিজ্ঞেস করে, এবং আমি টাইপ শুরু করি, তখন পাসওয়ার্ডটি দৃশ্যমান হয়। আমি কিভাবে এই প্রতিরোধ করতে পারি? আমি মাধ্যমে লগ ইন করুন ssh এবং তারপর MySQL কমান্ড চালানো, সবকিছু ঠিক কাজ করে।


5
আপনি মনে করেন না যে শিরোনামটি বরং অস্পষ্ট। আপনি বলতে পারেন যে এটি সমস্ত পাঠ্যকে পাসওয়ার্ড সহ দৃশ্যমান করে তোলে। আর এসএস কীভাবে বোঝা যায় আপনি যা টাইপ করছেন তা কোনও পাসওয়ার্ড বা তথ্য বনাম পাসওয়ার্ড?
barlop

@ বার্লপ আমি পরামর্শের জন্য উন্মুক্ত।
user110971

@ barlop ভাল এটি সার্ভারে ssh একবার কমান্ডটি চালানোর সময় এটি কাজ করে। কমান্ডগুলি যখন একটি আর্গুমেন্ট হিসাবে সরবরাহ করা হয় তখন আমি ssh আচরণটি একই ভাবে করতে চাই।
user110971

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

@barlop এটিই একই বার্তা যা আপনি আশা করেন এসএসএস পাসওয়ার্ড মাইএসকিউএল পাসওয়ার্ড অনুরোধ করে
user110971

উত্তর:


98

আপনি চালানোর জন্য একটি দূরবর্তী কমান্ড সরবরাহ করেন, SSH একটি tty বরাদ্দ করে না, তাই রিমোট কমান্ড ইকো অক্ষম করতে অক্ষম। আপনি SSH ব্যবহার করে একটি tty প্রদান করতে বাধ্য করতে পারেন -t বিকল্প:

ssh -t user@server 'mysql -u user -p'

সমতুল্য বিকল্প (জন্য -o অথবা কনফিগ ফাইলের জন্য) RequestTTY। আমি কনফিগারেশন ব্যবহার করার বিরুদ্ধে সতর্কতা চাই কারণ এটি অ-ইন্টারেক্টিভ কমান্ডের জন্য অবাঞ্ছিত প্রভাব ফেলতে পারে


15
অথবা আপনি নির্দিষ্ট TTY কে অনুরোধ করতে নির্দিষ্ট হোস্টটি কনফিগার করতে ~ / .ssh / config সম্পাদনা করতে পারেন। দেখ RequestTTY মধ্যে man 5 ssh_config
a CVn

7
@ মাইকেল কারজ্লিং (এবং টবি): হয়তো কিছুটা সতর্কতা যোগ করুন যে "-t" যুক্ত করা শুধুমাত্র ইন্টারেক্টিভ ব্যবহারের জন্য সংরক্ষিত হওয়া উচিত, কারণ এর পার্শ্ব প্রতিক্রিয়া রয়েছে। কিছু পার্শ্ব প্রতিক্রিয়া উপর একটি ভাল ভিউ জন্য: unix.stackexchange.com/a/122624/27616 (স্টিফেন চাজেলাস থেকে)
Olivier Dulac

সম্মত - আমি আপনাকে লজ্জাজনক কমান্ড (হোস্টের পরিবর্তে) অনুসারে সেটিংস (যেমন এটি) যুক্ত করতে পারছি না এটি লজ্জাজনক।
Toby Speight

28

একটি সুরক্ষিত বিকল্প ফাইল পাসওয়ার্ড সংরক্ষণ

আপনি যদি বিশ্বাস করতে পারেন [*] রিমোট কম্পিউটার সিকিউরিটি, যেমন আপনি প্রস্তাবিতভাবে সঠিকভাবে সুরক্ষিত বিকল্প ফাইলটিতে পাসওয়ার্ড সংরক্ষণ করতে পারেন পাসওয়ার্ড নিরাপত্তা জন্য শেষ ব্যবহারকারী নির্দেশিকা ম্যানুয়াল অধ্যায় [ 1 ] , মাধ্যমে যোগাযোগ করার প্রয়োজন ছাড়া ssh অথবা প্রতি টাইপ টাইপ।

বিশেষত আপনি ফাইলটির [ক্লায়েন্ট] বিভাগে একটি লাইন যোগ করতে পারেন .my.cnf আপনার বাড়িতে ডিরেক্টরি।

[client]
password=your_pass

অবশ্যই আপনাকে যে ফাইলটি যে কেউ অ্যাক্সেসযোগ্য থেকে রাখতে হবে তবে আপনি ফাইল অ্যাক্সেস মোডটি 400 বা 600 এ সেট করুন, উদাঃ।

chmod 600 ~/.my.cnf

তারপর আপনি ভালো কিছু ব্যবহার করতে পারেন

ssh user@server 'mysql -u user110971 --defaults-file=/home/user110971/mysql-opts'

ছিল user110971 আপনার অ্যাকাউন্টের ব্যবহারকারীর নাম।


একটি ছদ্মবেশী টটি বরাদ্দ করার জন্য এসএসএসকে বাধ্য করা হচ্ছে ( ssh -t )

এই সমস্যার মাধ্যমে আপনি যে কোনও কমান্ড পাঠাবেন ssh এবং আপনি ইনপুট সন্নিবেশ করা প্রয়োজন কারণ, ডিফল্টরূপে, ssh একটি ছদ্ম-টটি বরাদ্দ করা হবে না।

আপনি বিকল্প সঙ্গে tty বরাদ্দ জোর করতে পারেন -t, (প্রয়োজনে একেরও বেশি):

-t
ছদ্ম-tty বরাদ্দ জোরপূর্বক। এটি দূরবর্তী মেশিনে নির্বিচারে স্ক্রীন-ভিত্তিক প্রোগ্রামগুলি কার্যকর করতে ব্যবহার করা যেতে পারে, যা খুবই উপযোগী হতে পারে, উদাঃ। যখন মেনু সেবা বাস্তবায়ন। একাধিক-টি বিকল্পগুলি force tty বরাদ্দ, এমনকি এসএসএসের স্থানীয় টটি নেই।

আপনি এই ডেবিয়ান পোস্টে পড়তে পারেন (Jul_11_2008) [ 2 ] সুডো সম্পর্কে এটি একটি পুরানো সমস্যা যা পুনরাবৃত্তি করতে ভালবাসে:

ssh ব্যবহারকারী @ সার্ভার "sudo ls"
পাসওয়ার্ড: পাসওয়ার্ড

এবং পাসওয়ার্ড আপনি দেখানো হয়

এসটি পতাকা দিয়ে একটি ছদ্ম-টটি বরাদ্দ করার জন্য এসএসকে বাধ্য করা হল:

ssh -t user@server sudo ls

বিঃদ্রঃ:

[*] আপনি শুধুমাত্র আপনার দ্বারা অ্যাক্সেসযোগ্য একটি ফাইল এবং পাসওয়ার্ড রুট পাসওয়ার্ড ছেড়ে দিতে নির্ভর করতে পারেন কাজ ক্লায়েন্ট।
যদি রিমোট কম্পিউটার পরিবর্তন করা অপারেটিং সিস্টেমটি পুনরায় চালু করা সম্ভব হয় বা সম্পূর্ণরূপে সুরক্ষিত বলে মনে করা কোনও কম্পিউটারকে HDD সরানো সম্ভব হয় ... তবে সেই ক্ষেত্রে এমনকি পুরো ডিবি নিশ্চিত হবে না ...


1
হয়তো কিছুটা সতর্কতা যোগ করুন যে "-t" যুক্ত করা শুধুমাত্র ইন্টারেক্টিভ ব্যবহারের জন্য সংরক্ষিত হওয়া উচিত, কারণ এর পার্শ্ব প্রতিক্রিয়া রয়েছে। কিছু পার্শ্ব প্রতিক্রিয়া উপর একটি ভাল ভিউ জন্য: unix.stackexchange.com/a/122624/27616 (স্টিফেন চাজেলাস থেকে)
Olivier Dulac

2

প্রসেস fs জন্য মাউন্ট বিকল্প "hidepid" এছাড়াও মূল্যবান। এটি আপনার কমান্ডলাইনে অন্যদের ব্যবহারকারীদের জন্য প্রক্রিয়া তালিকাতে অদৃশ্য করে তোলে। fstab উদাহরণ:

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