কীভাবে কেবল পাসওয়ার্ডের প্রমাণকে এসএসএস ক্লায়েন্টকে ব্যবহার করতে বাধ্য করবেন?


375

যদি আমি উদাহরণস্বরূপ থেকে পবকি প্রমাণ ব্যবহার করি তবে: উবুন্টু 11.04 আমি কীভাবে কোনও সার্ভারে কেবল পাসওয়ার্ড লেখার জন্য ssh ক্লায়েন্টকে সেট করতে পারি? (কেবলমাত্র একটি সার্ভারে পাসওয়ার্ড পরীক্ষা করার কারণে প্রয়োজনীয়, যেখানে আমি কী দিয়ে ডিফল্ট লগইন করেছি)

আমি একটি উপায় খুঁজে পেয়েছি:

mv ~/.ssh/id_rsa ~/.ssh/id_rsa.backup
mv ~/.ssh/id_rsa.pub ~/.ssh/id_rsa.pub.backup

এবং এখন আমি পাসওয়ার্ডের জন্য অনুরোধ জানাই, তবে কোনও অফিক্যাল উপায় আছে?

উত্তর:


578

আমার সম্প্রতি এটিরও দরকার ছিল এবং এটি নিয়ে এসেছি:

ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no example.com

আপনাকে নিশ্চিত করতে হবে যে পাসওয়ার্ড প্রমাণীকরণ অস্বীকার করতে ক্লায়েন্টটি কনফিগার করা হয়নি।


4
আমাকে এমন পরিবেশে উপস্থিত হওয়ার জন্য পাসওয়ার্ড প্রম্পটটি প্রয়োগ করতে হবে যেখানে স্বয়ংক্রিয় প্রমাণীকরণের জন্য কার্বেরোস ব্যবহার করা হয়েছিল এবং সেই একই পরিস্থিতিতে আমার জন্য অনুরূপ কমান্ড কাজ করেছিল: ssh -o GSSAPIAuthentication=no example.com
ইলভিলজা

21
খুশী হলাম। শুধুমাত্র -o PubkeyAuthentication=noআমার ক্ষেত্রে যথেষ্ট ছিল।
mivk

10
একটি বন্ধু ওক্স ল্যাপটপে প্রবেশ করতে, আমাকে ব্যবহার করতে হয়েছিল: -o PreferredAuthentications=keyboard-interactive -o PubkeyAuthentication=no পরিবর্তে
গাইডো

4
এটি আমার পক্ষে কাজ করে না। এটি বলে চলেছে : অনুমতি অস্বীকার (পাবলিককি)। এবং কোনও পাসওয়ার্ড প্রম্পট দেয় না।
রিইনারপোস্ট

7
@ রিইনিয়ারপোস্ট সম্ভবত এটি কারণ এসএসএস হোস্ট অক্ষম করেছে PasswordAuthentication। আসলে, আমি এখানে আছি কারণ আমি পরীক্ষা করতে চেয়েছিলাম যে পাসওয়ার্ড অক্ষম করা অক্ষরটি আমার হোস্টে সঠিকভাবে কাজ করেছে।
রাবারডাক

168

আমি এই উদ্দেশ্যে একটি শর্টকাট আবিষ্কার করেছি:

ssh user:@example.com

এর পরে কোলন ( :) এবং খালি পাসওয়ার্ডটি নোট করুন ।


2
এখনও কোনও ডকুমেন্টেশন নেই। আসলে, আমি ওপেনএসএসএইচ উত্স কোডটি দিয়ে কোনও লাভ হয়নি (এর পার্সিং পর্যায়টি বরং ক্রিপ্টিক এবং এটি এখানে সকাল :))। আমার প্রাথমিক প্রেরণা: আপনি যদি খালি পাসওয়ার্ড দেন তবে অনেক ক্লায়েন্ট একটি পাসওয়ার্ডের জন্য অনুরোধ করেmysql -u user -p
হালিল Özgür

43
এটি আর কাজ করবে বলে মনে হয় না, অন্তত আমার ক্ষেত্রে না। sshক্লায়েন্ট অনাবৃতভাবে একটি নতুন ইনস্টল করা সার্ভারে প্রমাণীকরণের জন্য অনাবিলম্বিত প্রাইভেট কীগুলি চেষ্টা করছে এবং কখনও পাসওয়ার্ড না জিজ্ঞাসা করে সর্বাধিক পরিমাণে পৌঁছানোর চেষ্টা করার কারণে এটি প্রত্যাখ্যান করে চলেছে। এই প্রথম সংযোগের জন্য পাসওয়ার্ড প্রমাণীকরণকে বাধ্য করার জন্য, আমাকে -o PreferredAuthentications=passwordসিনট্যাক্সটি ব্যবহার করতে হয়েছিল , কোলন ট্রিকটি কোনও লক্ষণীয় প্রভাব ফেলেনি। এই কৌশলটি চেষ্টা করার মতো হলেও, এটির সাথে সামঞ্জস্যপূর্ণ আচরণ হিসাবে নির্ভর করা উচিত নয়।
হোয়াইটউইন্টারওয়াল্ফ

2
@ হালিলাজগের: দুঃখজনক সংবাদ, এটি মনে রাখা এবং টাইপ করা অনেক সহজ ছিল ;)!
হোয়াইটউইন্টারওয়াল্ফ

3
হোয়াইটওয়ানটারওয়াল্ফ হিসাবে কোয়ালকুনো বলেছেন, দুর্ভাগ্যক্রমে, এটি কোনও প্ল্যাটফর্মে আর কাজ করে না।
হালিল Özgür

2
আপনার ssh_config ফাইলে পাসওয়ার্ডঅথেন্টিকেশন নম্বর নেই তা নিশ্চিত করুন!
ব্রায়াম

32

পাশাপাশি স্কুপ্রার পোস্ট করা পদ্ধতি হিসাবে, আপনি আপনার এসএসএস ক্লায়েন্ট কনফিগারেশন ফাইলটিতে প্রতি হোস্ট বিকল্প সেট করতে পারেন।

আপনার .sshডিরেক্টরিতে, নামক একটি ফাইল তৈরি করুন config(যদি এটি ইতিমধ্যে বিদ্যমান না থাকে) এবং এর জন্য অনুমতিগুলি সেট করে 600, আপনি তারপরে যে বিভাগগুলি শুরু করে তা তৈরি করতে পারেন

host <some hostname or pattern>

এবং তারপরে প্রতি হোস্ট বিকল্পগুলি সেট করুন, উদাহরণস্বরূপ,

host bob.specific.foo
user fred

host *.home.example
user billy
port 9191

যাতে আপনি থাকতে পারে

host server.to.test
PubkeyAuthentication=no

সেই ফাইলটিতে এবং তারপরে সহজভাবে

ssh server.to.test

এবং বিকল্পটি তুলে নেওয়া হবে।


এই উত্তরের জন্য ধন্যবাদ। আমি আমার মধ্যে একটি এন্ট্রি তৈরি করেছি ~/.ssh/configএবং যুক্ত করেছিPubkeyAuthentication no
ক্রেগ লন্ডন

2
আমার জন্য কাজ করে না।
রিইনারপোস্ট

11

আমার সম্প্রতি এটির প্রয়োজন ছিল তবে উপরের বিকল্পগুলির মধ্যে কোনওটিই কাজ করে নি, এটি ssh -vদেখিয়েছিল যে -oস্যুইচটি দিয়ে পাস করা কমান্ড-লাইন বিকল্পগুলি আমার ~/.ssh/configফাইলে নির্দিষ্ট মানগুলি দ্বারা ওভার-রাইড হয়েছে ।

এটি কী কাজ করেছিল:

ssh -F /dev/null <username>@<host>

থেকে sshমানুষ পৃষ্ঠা:

 -F configfile
     Specifies an alternative per-user configuration file.  If a
     configuration file is given on the command line, the system-wide
     configuration file (/etc/ssh/ssh_config) will be ignored. The default 
     for the per-user configuration file is ~/.ssh/config.

এই উত্তরের ক্রেডিট: আমি কীভাবে এসএসএস / কনফিগারটিকে উপেক্ষা করতে পারি?


1
এটি প্রশ্নের উত্তর দেয় না। আপনি সর্বদা এজেন্টে কীগুলি সংরক্ষণ করতে পারেন এবং আপনার পদ্ধতির ক্লায়েন্টকে সেগুলি ব্যবহার করা থেকে বিরত রাখবে না।
জাকুজে

হুঁ, আমি আমার উত্তরে যে বিষয়টি উল্লেখ করেছি তার সাথে সাথে কীভাবে কেউ এই সমস্যাটি পুনরুদ্ধার করবে ?
এডেলেক্স

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

একদম সত্য নয়, আমি এটি কেবল আমার লুবুন্টু ১৪.০৪ এ পরীক্ষা করে দেখেছি এবং আমার কাছে স্ট্যান্ডার্ড লোকেশন থাকা ~/.ssh/configসত্ত্বেও কীগুলি নির্দিষ্ট করে দিলে ব্যবহার হয় না -F /dev/nullssh -vআউটপুট এই ক্ষেত্রে সহায়তা করে, এটি স্পষ্টভাবে দেখায় যে আমার এসএসএস কনফিগারেশনে আমার ক্যাচ-অল এন্ট্রি রয়েছে *, এটি -oপূর্বের উত্তরগুলির মতো স্যুইচটি দিয়ে যাওয়া বিকল্পগুলির সম্মান না করে পাবলিক কী ব্যবহার করতে নির্বাচন করে ।
এডেলেক্স

1
স্ট্যান্ডার্ড অবস্থান ~/.ssh/id_rsaম্যানুয়াল পৃষ্ঠাতে বর্ণিত হিসাবে। এই পাথগুলি ক্লায়েন্টে হার্ডকোডযুক্ত। পরীক্ষা করার সময় আপনি সঠিক ব্যবহারকারী সরবরাহ করেছেন তা নিশ্চিত করুন।
জাকুজে

4

আমি এই উত্তরগুলির কয়েকটি কয়েকটি চেষ্টা করেছিলাম, তবে ssh -vআমার সর্বজনীন কীগুলি আমার ডিরেক্টরি ডিরেক্টরি থেকে সরিয়ে নিয়ে যেতে দেখিয়েছি। তবে, একটি বোগাস পরিচয় ফাইল নির্দিষ্ট করে আমার জন্য কৌশলটি করেছে:

ssh -i /dev/null host

আমাকে এটি স্থায়ীভাবে করতে হবে (একটি এপিসি র্যাক মাউন্টযুক্ত পিডিইউতে ভাঙ্গা এসএসএইচ সার্ভারের চারপাশে কাজ করার জন্য - আপনি যদি সুরক্ষা সম্পর্কে চিন্তা করেন তবে এই জিনিসগুলি থেকে অনেক দূরে থাকুন - তাই আমি বিকল্পটি আমার কনফিগার ফাইলে রেখে দিয়েছি:

Host apc1 apc2
KexAlgorithms +diffie-hellman-group1-sha1
IdentityFile /dev/null

2

@scoopr এবং @HililÖzgür উত্তরগুলি আমার পক্ষে কার্যকর হয়নি।

এটি আমার পক্ষে কাজ করেছে:

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no user@example.com

সূত্র: http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html


13
প্রশ্নটি পাসওয়ার্ড দ্বারা ক্লায়েন্ট প্রমাণীকরণ সম্পর্কে। এই উত্তরটি সার্ভার হোস্ট কী পরিচিত হোস্টগুলির মধ্যে একটির সাথে মেলে কিনা তা যাচাইয়ের বিষয়ে।
বাস্তবে

2

এবং এও নিশ্চিত BatchMode=yesহন যে .ssh / কনফিগারেশনে কোনও সক্রিয় নেই । অন্যথায় আপনার কোনও ইন্টারেক্টিভ পাসওয়ার্ড প্রম্পট পাওয়ার সুযোগ নেই।


0

এই সমস্যাটি নিয়ে আমি বিশ্বের একমাত্র ব্যক্তি হতে পারি, তবে আমার কাছে sshঅন্য একটি অপারেটিং সিস্টেম চলছিল (একটি সাইগউইন শেল উইন্ডোজে চকো এসএসএস) এর মাধ্যমে দেখা হয়েছিল fromwhich ssh

সুতরাং সমাধান ছিল

 /usr/bin/ssh user@example.com

পুরো পথটি নোট করুন। আমি দৌড়ানোর পরে এটি করেছিcyg-get openssh

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