আমি অনুমোদিত_কিজে আমার এসএসএইচ পাবলিক কী অনুলিপি করার পরে সার্ভার পাসওয়ার্ড জিজ্ঞাসা করে


44

আমার একটি উবুন্টু সার্ভার রয়েছে, একটি ক্লাউডে চলছে। আমি একটি ব্যবহারকারী তৈরি করেছি ( git)। ফোল্ডারে /home/git, আমি .ssh/dir এবং authorized_keysফাইল তৈরি করেছি।

তবে, আমি যখন আমার এসএসএইচ পাবলিক কীটি authorized_keysফাইলটিতে রাখি, তখন সার্ভার আমার কাছে পাসওয়ার্ড জিজ্ঞাসা করে।

আমি কি ভুল করছি?


আপনি কোথায় ইয়াপুর পাবলিক রাখেন? ইউজার গিট না রুট? আপনি কিভাবে এটি অ্যাক্সেস না? হিসাবে এসএসএস <you> @ <server> ও <git> @ <server> বা রুট @ <সার্ভার> .. এটি চেক করুন এবং আরও তথ্য যুক্ত করুন।
maniat1k

উত্তর:


42

সার্ভারে, ssh ডিমন ত্রুটিগুলিতে লগ করবে /var/log/auth.log, তাই রিপোর্ট করা হচ্ছে কিনা তা দেখতে ফাইলটি পরীক্ষা করুন।

ক্লায়েন্ট পক্ষ থেকে, সংযোগ স্থাপনের সময় আপনি ভার্বোসটি বাড়াতে -vপতাকা (বা -vvবা -vvv) যুক্ত করতে পারেন । আপনি নিজের সমস্যাটি এইভাবে সনাক্ত করতে সক্ষম হতে পারেন।

এখানে অন্যান্য জিনিস পরীক্ষা করা আছে।

  • /home/git/.ssh/authorized_keysমালিকানাধীন কিনা তা নিশ্চিত করুন git
  • নিশ্চিত /home/git/.ssh/authorized_keysহয়ে নিন যে এর মোড 600 ( -rw-------) রয়েছে।

/etc/ssh/sshd_configফাইলটিও পরীক্ষা করে দেখুন ।

  • PubkeyAuthentication সেট করা উচিত yes
  • এছাড়াও AuthorizedKeysFileনির্দেশিকা রয়েছে যা অনুমোদিত কীগুলি অবস্থিত হওয়া উচিত সেই পথটি নির্ধারণ করে। এটি মন্তব্য করেছে বা এর ডিফল্ট হয়েছে তা নিশ্চিত করুন %h/.ssh/authorized_keys

এর ধন্যবাদ! আমি এই বিকল্পগুলি চেষ্টা করব এবং প্রতিক্রিয়ার পরে ফিরে আসব!
লুইস ডালমোলিন

আপনি যদি /var/log/auth.logফাইল না দেখেন তবে আপনি কী করবেন ? এটি চালু করার কোনও উপায় আছে?
স্টিভ রবিনস

1
আপনার /var/log/auth.log না থাকলে লগগুলি / var / লগ / সুরক্ষিত থাকতে পারে
CoverosGene

নির্বোধের ভুল, আমি সার্ভারে .ssh ফোল্ডারের ভিতরে আমি .pub ফাইলটি স্কিপ-এড করেছিলাম যার সাথে আমি সংযোগ করতে চাইছি। এটিকে অনুমোদিত_কিজ ফোল্ডারে স্থানান্তরিত করতে ভুলবেন না।
সেন্টারঅরবিট

আমাকে নিজের হোম ডিরেক্টরি থেকে নিজেই গ্রুপ লেখার অনুমতিগুলি সরিয়ে ফেলতে হয়েছিল। তারপরে আমি এসএসএস দিয়ে আবার শুরু করেছিsudo service ssh restart
ডিলান পিয়ার্স

19

এছাড়াও নিশ্চিত হয়ে নিন যে আপনার ব্যবহারকারীর হোম ডিরেক্টরি (আপনার ক্ষেত্রে, / হোম / গিট) কেবল আপনার দ্বারা লিখনযোগ্য। আমার এই ডিরেক্টরিটি একবার হয়েছিল কারণ আমার হোম ডিরেক্টরিটি গ্রুপ-লিখনযোগ্য ছিল। /var/log/auth.log এতে বলেছে: "প্রমাণীকরণ অস্বীকার করেছে: খারাপ মালিকানা বা ডিরেক্টরি / হোম / চকের मोडগুলি"। (এটি নিশ্চিত করার জন্য এটি কোনও अधिकृत_কিজ ফাইল ব্যবহার করে না যা আপনার ব্যতীত অন্য কেউ গন্ডগোল করছে!)


যদিও এটি অবশ্যই সহায়ক, আমি মনে করি এটি এক্সের উত্তরগুলির চেয়ে আরও একটি সংযোজন ।
জার্মটভিডিজক

1
ওহে আল্লাহ, অনেক ধন্যবাদ! আমার চোখ জ্বলছিল কারণ আমি গুগলে সমস্ত অনুসন্ধান করেছি। শেষ পর্যন্ত এটি কাজ করে! তোমাকে অনেক ধন্যবাদ.
GTRONICK

ম্যান ধন্যবাদ! আমি একটি সমাধান অনুসন্ধান করতে ঘন্টা ব্যয় করেছি ... এবং এটি আমার সমস্ত সমস্যার সমাধান করেছে।
আফারিয়া

হা. ঐটা এটা ছিল. খুশী আমি পরবর্তী উত্তরটি নীচে পড়ার সিদ্ধান্ত নিয়েছি
কাতুশাই

ব্যবহারকারীর হোম ডিরেক্টরি কী তা / etc / passwd পরীক্ষা করে দেখুন । আমার উদ্ভট সমস্যাটি কোনও মানসম্মত ছিল না
ড্রডসু

5

এটি সমাধানের বিভিন্ন উপায় রয়েছে: আপনি পাসওয়ার্ড প্রমাণীকরণ ব্যবহার না করার জন্য sshd(সার্ভার-সাইড) বা ssh(ক্লায়েন্ট-সাইড) কনফিগার করতে পারেন । সার্ভারে পাসওয়ার্ড প্রমাণীকরণ অক্ষম করা আপনার সার্ভারটিকে আরও সুরক্ষিত করে তোলে তবে আপনি কীটি আলগা করে রাখলে আপনি সমস্যায় পড়বেন।

করতে ssh(ক্লায়েন্ট-সাইড) pubkey প্রমাণীকরণ ব্যবহার করে, কিছু অপশন যোগ sshকমান্ড প্রয়োগ করুন:

ssh -o PubkeyAuthentication=yes -o PasswordAuthentication=no -X git@server

যদি এটি কাজ করে, আপনি PasswordAuthentication=nossh ক্লায়েন্ট কনফিগারেশন ফাইল /etc/ssh/ssh_configসিস্টেম-ব্যাপী বা ~/.ssh/configব্যবহারকারী-নির্দিষ্ট (বিশদে, দেখুন man ssh_config) স্থায়ীভাবে বিকল্পটি সেট করতে পারেন ।


1
/etc/ssh/ssh_configডিবিয়ান / উবুন্টু সিস্টেমে ডিফল্টরূপে সমস্ত এসএসএইচ ক্লায়েন্ট কনফিগারেশন ( ) ইতিমধ্যে পছন্দ করে PubkeyAuthentication এবং sshভার্বোজ মোডে যাবার সময় আপনি দেখতে পাবে এটি প্রথমে চেষ্টা করুন।
gertvdijk

3

আপনি কি নিজের স্থানীয় মেশিনে। / .Ssh / config ব্যবহার করছেন? আমি যখন কনফিগার ফাইলে আইডেন্টিটি ফাইলের নির্দেশিকাটি ব্যবহার করি এবং সর্বজনীন কীটিতে ইঙ্গিত করি তখন আমি এই সমস্যায় পড়েছি। উদাহরণ স্বরূপ:

Host Cloud
    Hostname cloud.theclouds.com
    User git
    IdentityFile ~/.ssh/config/mykey # This is correct

    # IdentityFile ~/.ssh/config/mykey.pub # This is incorrect

2

যদি আপনার হোম ফোল্ডারটি এনক্রিপ্ট করা থাকে তবে authorized_keysলগইন করার আগে আপনার ফাইলটি পঠনযোগ্য নয়। আপনাকে এটি আপনার বাড়ির বাইরে নিয়ে যেতে হবে।

এখানে ব্যাখ্যা করা হয়েছে এবং কীভাবে করবেন: https://help.ubuntu.com/commune/SSH/OpenSSH/Keys# সমস্যা সমাধান


1

আরেকটি বিষয় যাচাই করে দেখুন তা হল আপনার পাবলিক কীতে অতিরিক্ত গাড়ীর রিটার্ন রয়েছে কি না। আমি উপরের পরামর্শটি অনুসরণ করে /var/log/auth.log পর্যালোচনা করেছি এবং কীটি পড়ার সময় একটি ত্রুটি দেখেছি। চাবিটি চারটির পরিবর্তে প্রায় দুটি লাইন দীর্ঘ ছিল। কীটিতে এমবেড করা অতিরিক্ত গাড়ীর রিটার্ন ছিল।

Vi সম্পাদক ব্যবহার করার সময়, লাইনে যুক্ত হতে শিফট-জ ব্যবহার করুন এবং কী স্ট্রিংয়ের অতিরিক্ত স্থানটি মুছুন।


1
আমি ট্রিপল চেক অনুমতি এবং sshd_config। দেড় ঘন্টার জন্য আমার মাথাটি দেয়ালের বিপরীতে বেঁধে দিন। এটা আমার ভুল ছিল! একরকম, আমি অতিরিক্ত ফাইলব্রেক দিয়ে আমার সম্পাদনা করা সমস্ত ফাইল শেষ করার অভ্যাসটি পেয়েছি। এমনকি একটি কী এবং শেষে একটি ক্যারেজ ফিরে আসার পরেও এটি অনুমোদনের বিশৃঙ্খলার জন্য যথেষ্ট।
jrhorn424

আপনার কাছে ----- এন্ড আরএসএ প্রাইভেট কী -----ও রয়েছে তা নিশ্চিত করুন।
tobych

1

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

ssh-add path/to/private/key

1

আপনি এসএসএইচ এজেন্টে আপনার কী যুক্ত করতে পারেন:

u@pc:~$ ssh-agent bash
u@pc:~$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /home/u/.ssh/id_rsa: # ENTER YOUR PASSWORD
Identity added: /home/u/.ssh/id_rsa (/home/u/.ssh/id_rsa)

0

এটিও হতে পারে যে আপনি কল করছেন

sudo git clone gituser@domain:repo.git

যেখানে শিকড় ব্যবহারকারীদের ssh কী যোগ করা হয় নি authorized_keysএরgituser


0

উবুন্টু 18.04.02 এলটিএস চালিত একটি মেশিনে ~/.ssh600 এর অনুমতি নির্ধারণের পরামর্শটি আমার পক্ষে কার্যকর হয়নি। আমাকে অনুমতিগুলি 700 এ সেট করতে হয়েছিল এবং তারপরে জিনিসগুলি ভাল কাজ করেছে।


0

আমার আমার .ssh / ডিরেক্টরি এবং অনুমোদিত_কি-কি ফাইলের অনুমতিগুলি সঠিক ছিল তবে ভিন্ন, স্ব-উত্সাহিত সমস্যার কারণে এই "পাসওয়ার্ডের জন্য প্রম্পট" সমস্যার মুখোমুখি।

আমি আমার স্থানীয় id_rsa.pub থেকে সার্ভারের অনুমোদিত_কিজ ফাইলে তথ্য অনুলিপি করতে একটি মাউস-ভিত্তিক হাইলাইট এবং অনুলিপি / পেস্ট ব্যবহার করেছি। এটি সাফল্যের সাথে একক লাইন হিসাবে তথ্য অনুলিপি করেছে, কিন্তু সেখানে যেখানে দৃশ্যমান রেখাগুলির শেষে অযাচিত স্পেস রয়েছে যা vi সহ ফাইল সম্পাদনা করার সময় দেখতে শক্ত ছিল hard একবার আমি এই অযাচিত স্থানগুলি সরিয়ে ফেললে আমি ঠিক জরিমানা করতে পারি।


0

আমার ক্ষেত্রে যা ঘটেছে তা হ'ল আমার লোকাল মেশিনটি (2 কী id_rsa.pub এবং id_rsa2.pub) থেকে অ্যাক্সেস করার জন্য আমার কাছে 2 ভিএম আছে। আমি বুঝতে পারি যে আমার এসএসএস সংযোগটি কোনও ssh user@xx.xx.xx.xx.xx সংযোগের জন্য ডিফল্টরূপে id_rsa.pub ব্যবহার করছে। আমি একটি কনফিগার ফাইল যুক্ত করে আমার সমস্যার সমাধান করেছি এবং নীচের মতো প্রতিটি হোস্টের জন্য ব্যবহৃত পরিচয়টি উল্লেখ করেছি:

vi ~/.ssh/config

Add both hostnames and their identity file as follows:

Host server1.nixcraft.com
  IdentityFile ~/Users/.ssh/id_rsa1
Host server2.nixcraft.com
  IdentityFile /backup/home/aymen/.ssh/id_rsa2
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.