কী ফাইলগুলির সাথে ssh প্রমাণীকরণের চেষ্টা করা হচ্ছে: সার্ভার আমাদের কীটি প্রত্যাখ্যান করেছে


53

আমি ব্যবহারকারীর নাম / পাসওয়ার্ডের স্থলে কী ফাইলগুলির সাথে ssh প্রমাণীকরণ সেটআপ করার চেষ্টা করছি। ক্লায়েন্টটি একটি উইন্ডোজ বাক্স যা পুটিটিওয়াই চলছে এবং সার্ভারটি একটি উবুন্টু 12.04 এলটিএস সার্ভার।

আমি puttygen.exe ডাউনলোড করেছি এবং এটিতে একটি মূল জুড়ি তৈরি করা হয়েছে। ইন /etc/ssh/sshd_configআমি এই লাইন আছে:

AuthorizedKeysFile %h/.ssh/authorized_keys

এবং আমার ক্লায়েন্টের সর্বজনীন কী ফাইলে এটি বলে:

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "my@email.address.com"
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAr3Qo6T5XU06ZigGOd3eKvfBhFLhg5kWv8lz6
qJ2G9XCbexlPQGanPhh+vcPkhor6+7OmB+WSdHeNO652kTofnauTKcTCbHjsT7cJ
GNrO8WVURRh4fabknUHPmauerWQZ6TgRPGaz0aucU+2C+DUo2SKVFDir1vb+4u83
AV1pKxs=my@email.address.com
---- END SSH2 PUBLIC KEY ----

আমি অংশটি "ssh-rsa AAA" থেকে "my@email.address.com" এ অনুলিপি করেছি এবং ফাইলটি ~/.ssh/authorized_keysআমার সার্ভারে (আমার নিজের হোমফোর্ডে) রেখেছি। পিটিটিওয়াই-তে সংযোগ> এসএসএইচ> আউথের অধীনে আমি আমার ক্লায়েন্টটিতে উত্সাহিত ব্যক্তিগত কী-এর পথে প্রবেশ করলাম এবং সেশন সেটিংস সংরক্ষণ করেছিলাম।

আমি ssh সার্ভারটি দিয়ে আবার চালু করেছি

sudo service ssh restart

এখন আমি যদি পুটিটি-তে প্রোফাইল লোড করি (আমি যাচাই করেছি যে ব্যক্তিগত কীটি এখনও সংযোগ> এসএসএইচ> আথে রয়েছে এবং সেই পথটি সঠিক) এবং এটি প্রোফাইল চালায়, এটি বলে

Server refused our key

আমি পাবলিক কীটি ডিরেক্টরিতে কোনও ফাইলে রাখার চেষ্টা করেছি ./ssh/authorized_keys/তবে এটির সাহায্য হয়নি তাই আমি ./ssh/authorized_keysএকটি ফাইল হিসাবে ব্যবহার করেছি , এতে কীটি আটকে রেখেছি । আমি সার্ভারে একটি বেসরকারী / সর্বজনীন কী জুড়ি উত্পন্ন করার চেষ্টা করেছি, পাবলিক কীটি ./ssh/authorized_filesরেখেছি এবং আমার ক্লায়েন্টের উপর পিটিটিওয়াইতে প্রাইভেটটি লোড করছি। সার্ভারটি পুনরায় বুট করা কোনও উপকারে আসেনি।

আমি খুঁজে পেয়েছি যে ব্যবহারকারীর বাড়ির ফোল্ডারের বাইরে কোনও জায়গায় কীটি রেখে ত্রুটিটি সমাধান করা যেতে পারে তবে এটি কেবল তখনই কার্যকর যখন বাড়ির ফোল্ডারটি এনক্রিপ্ট করা থাকে, যা এটি নয়।

একটি 4096 বিট কী উত্পন্ন করার চেষ্টাও করেছিলেন, সম্ভবত 1024 খুব ছোট ছিল short

আমি কীভাবে এটি কাজ করতে পারি? ধন্যবাদ!

সম্পাদনা করুন:

ঠিক আছে, /var/log/auth.logবলেছেন:

sshd: Authentication refused: bad ownership or modes for directory /home/vorkbaard/.ssh

গুগল আমাকে বলেছে ~/.ssh/700 হতে হবে এবং ~/.ssh/authorized_keys600 হওয়া উচিত, তাই আমি এটি করেছি। এখন /var/log/auth.logবলেছেন:

sshd: error: key_read: uudecode AAAAB3N [etc etc etc until about 3/4 of my public key]

উত্তর:


95

ঠিক আছে, এটি ঠিক করা আছে তবে আমি দেখতে পাচ্ছি না যে আমি ইতিমধ্যে যা চেষ্টা করেছি তার থেকে এটি কীভাবে আলাদা।

আমি কি করেছিলাম:

  • puttygen.exe (দৈর্ঘ্য: 1024 বিট) সহ একটি মূল জুড়ি তৈরি করুন
  • পিটিটিওয়াই প্রোফাইলে ব্যক্তিগত কী লোড করুন
  • ~/.ssh/authorized_keys এক লাইনে সর্বজনীন কী প্রবেশ করান (দিয়ে শুরু করা দরকার ssh-rsa)
  • chmod 700 ~/.ssh
  • chmod 600 ~/.ssh/authorized_keys
  • chown $USER:$USER ~/.ssh -R
  • /etc/ssh/sshd_configএটি পরিবর্তন করে তাই পরিবর্তন করুনAuthorizedKeysFile %h/.ssh/authorized_keys
  • sudo service ssh restart

সমস্যা সমাধানের জন্য # tail -f /var/log/auth.log

আপনার সাহায্যের জন্য ধন্যবাদ!


1
হুম, তাহলে সেই sshd: error: key_read: uudecode AAAAB3Nত্রুটির auth.logকী হল?
আলা আলী

আলা আমার কোন ক্লু নেই। সম্ভবত আমি পূর্ববর্তী কী স্ট্রিংটি আটকে একটি ত্রুটি করেছি। Auth.log এখন আর কোনও এন্ট্রি পায় না এবং কী ভিত্তিক প্রমাণীকরণ নিশ্চিন্তে কাজ করে। আমার মূল সমস্যাটি হ'ল আমি কী করা দরকার তা সম্পর্কে সত্যই নিশ্চিত নই , কীভাবে এটি আরও বেশি কঠিন করে তোলে। সুতরাং কেন জানি না তবে এটি কাজ করে। আপনার সহায়তার জন্য আবার ধন্যবাদ :)
ফোরকবার্ড

অসাধারণ!!! আমি 2 দিন ধরে আমার মাথা চুলকাচ্ছি। এই উত্তর দিন বাঁচায় !!
নাকা

পদক্ষেপ 3 আমার জন্য কৌশল ছিল। আমি এই authorized_keysফাইলটিতে সর্বজনীন কীটি রাখিনি আমি আমার mykey.pubফাইলটি কেবল ~/.sshফোল্ডারে আটকে দিয়েছি এবং ভেবেছি এটিটি বেছে নেবে। পরিবর্তে আমার শেষ পর্যন্ত যা দরকার তা হ'ল এটি চালানো বা সেখানে থাকা অন্যান্য কীগুলির নীচে আটকানো এবং আটকানো। cat mykey.pub >> authorized_keys। এখন সহজ মনে হচ্ছে, তবে শেখা পাঠ্য সমস্ত পাবলিক কী authorized_keysকেবলমাত্র ~/.ssh/ডিরেক্টরিতে নয়। কেউ দয়া করে পরামর্শ দিন যদি এটি সঠিক দাবী না হয়।
টিম্বব্রাউন

পদক্ষেপগুলি যদি সহায়তা না করে তবে এটিও পরীক্ষা করে দেখুন: ১. আপনি সংরক্ষিত পুটি পাবলিক কীটি অনুমোদিত_কিজে অনুলিপি করেছেন, ওপেনএসএইচ এক নয় ২. আপনি যদি পিটিটিজেন থেকে অনুলিপি / পেস্ট ব্যবহার করে অনুলিপি করেছেন (যা আপনার করা উচিত), আপনি বিভক্ত হয়ে থাকতে পারেন একাধিক লাইনে পাবলিক কী; এটি একক লাইন হওয়া উচিত; r_hartman Centos.org/forums/viewtopic.php?t=990
এমভ্ল্যাডক

23

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

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "imported-openssh-key"
AAAAB3NzaC1yc2EAAAADAQABAAABAQDUoj0N3vuLpeviGvZTasGQ...
... lPmTrOfVTxI9wjax2JvKcyE0fiNMzXO7qiHJsQM9G9ZB4Lkf71kT
---- END SSH2 PUBLIC KEY ----

যা কাজ করছিল না। তবে এটি ফর্মটিতে এটি কাজ করে পেয়েছে:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDU.....j0N3vuLpeviGvZTasGQa1rcJiPXQMW7v3uurb+n94B9MQaaWR0odsg5DJQL92TNenOda5BO1nd08y6+sdLQmHXExTz6X8FzgoVsAkEl3RscxcxHUksiKA9JfTo38vQvG/bPxIHMCuSumCQVA1laf3rO/uOrkcB7iMWhaoi1/z6AbFtPzeh7xjGfInMWwtBI0CsHSRF73VWIxT26w0P+KjafCjSn/7vDO1bT8QHujSQelU/GqaVEvbbvPl1a7POVjKgHLNekolwRKfNeVEewcnmZaoqfHgOKlPmTrOfVTxI9wjax2JvKcyE0fiNMzXO7qiHJsQM9G9ZB4Lkf71kT UserName@HOSTNAME

14
আপনি ssh-keygen -i -f filenameofwindowsformpub.keyআপনার ওপেনএসএসএইচ সার্ভার দ্বারা বোঝা ফর্ম্যাটে পাবলিক কী রূপান্তর করতে ব্যবহার করতে পারেন ।
কালো

হ্যাঁ, এটি আমার পক্ষে কাজ করেছিল! এটি একটি এক লাইনে থাকতে হবে। বিশ্বাস করা যায় না যে কেবল এটিই ছিল!
অ্যাডেলরিওসন্তিয়াগো

1
এইচআই কুরআর আমি ব্ল্যাকের উপরোক্ত নির্দেশনাগুলি উত্তরে বিশিষ্ট করা উচিত।
ইকারার

আমি কি ওপেনএসএসএইচ সার্ভার ফর্ম্যাটে মন্তব্য যুক্ত করতে পারি? মানুষের পক্ষে এই কীটি কম্পিউটারটি উপস্থাপন করে তা বলা মুশকিল।
ব্যবহারকারী 1700890

আমি যখন ব্ল্যাকের পরামর্শটি অনুসরণ করি, তখন স্ট্রিংয়ের শেষে কোনও ব্যবহারকারীর নাম @ HOSTNAME নেই। আমি জানি না যে অংশটি গুরুত্বপূর্ণ।
আর্নল্ডবার্ড

9

সমস্যাটি হ'ল উইন্ডোজগুলি লিনাক্সের চেয়ে আলাদা নতুন লাইন ব্যবহার করে , তাই উইন্ডোজ থেকে লিনাক্সে কীটি অনুলিপি করার সময়, লাইনের শেষে একটি \ n থাকে যা আপনি সম্পাদকটিতে লিনাক্সটিতে দেখতে পাবেন না।

আপনি যদি /var/log/auth.log লেজ করে লগইন করার চেষ্টা করেন তবে ত্রুটিটি এমন:

sshd: ত্রুটি: কী_প্রেম: ইউডিকোড AAAAB3N [....] == \ n

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


এটি আমার সমস্যা ছিল, তবে আমি এথথ.লগ-তে কিছুই দেখতে পেলাম না যে প্রস্তাবিত হ'ল was হতাশ ...
অ্যান্টনি

8

আমাকে হোম ডিরেক্টরিতে অনুমতি পরিবর্তন করতে হয়েছিল

chmod 700 ~

2
এটি আমার পক্ষেও কাজ করেছে (যদিও এআইএক্সে)।
স্টিভাস্তেলান

CentOS
এও

রেডহাটে আমার জন্য কাজ করেছেন! গোষ্ঠী লেখার অ্যাক্সেস নির্দিষ্ট সমস্যা বলে মনে হচ্ছে। আমি যদি গ্রুপে পড়া অনুমতিগুলি রেখে যাই তবে এখনও আমার পক্ষে কাজ করে যদিও: "chmod 740।"।
পল

6

আমাকে 70 / .ssh ডিরেক্টরি অনুমতিগুলি 7070০ থেকে 700০০ এবং ~ / .ssh / অনুমোদিত_কিজ ফাইলের অনুমতিগুলি 660 থেকে 600 এ পরিবর্তন করতে হয়েছিল।

কিছু কারণে গ্রুপ অনুমতিগুলি সরানো আমার জন্য এই সমস্যাটি স্থির করে।

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

5

~/.ssh/authorized_keysফাইলটিতে একটি লাইনে সব হতে চাবি প্রয়োজন। যদি আপনি উপরের পেস্টের মতো এটি একাধিক লাইনে জুড়ে থাকেন তবে লাইনগুলিতে যোগদানের চেষ্টা করুন।


ধন্যবাদ, এটি উপলব্ধি করে এবং এখন আমি বুঝতে পারি কেন এটি কোনও ফাইল নয় ডিরেক্টরি নয়। তবে এটি কোনও উপকারে আসেনি।
ফোরকবার্ড

3
যে কেউ এর দ্বারা বিভ্রান্ত হতে পারে তার অর্থ, প্রতিটি কী কী তা নিজেই একক লাইনে থাকতে হবে তবে বিভিন্ন কীগুলি বিভিন্ন লাইনে থাকা দরকার।
অ্যান্টনি

2

আমার জন্য যা কাজ করেছে তা এখানে:

ইন puttygen, আপনি আপনার কীগুলি তৈরি করার পরে, নিশ্চিত হয়ে নিন যে আপনি আপনার অনুমোদিত_কিজ ফাইলে যাওয়ার জন্য শীর্ষ ক্ষেত্রের তথ্যটি অনুলিপি করে আটকে রেখেছেন। আপনি যদি আপনার ক্লায়েন্ট মেশিনে আপনার সর্বজনীন কী সংরক্ষণ করেন এবং এটি খুলতে পারেন, তবে puttygenস্ক্রিনের শীর্ষে থাকা পাঠ্যটি থেকে আলাদা । আবার, নিশ্চিত করুন যে আপনি উপর থেকে কপি করে পেস্ট করুন টেক্সট করতে puttygenপর্দাটি authorized_keys ফাইলের যা অবস্থিত হবে মধ্যে (পরে আপনি আপনার কী-তৈরি করেছি) ~/.ssh


এটি আসলে সমস্যাটি স্থির করেছে। আমি যদি পাবলিক কীটি সেভ করে ক্লিক করি তবে কেন এটি সঠিক ফর্ম্যাটটি সংরক্ষণ করতে পারে না i
লুকি

1

উপরের সমস্ত উত্তর ছাড়াও, আপনি কীটি puttygenসঠিকভাবে অনুলিপি করে আটকে দিয়েছেন তা নিশ্চিত করুন !

আপনি যদি এটির জন্য কী স্ট্রিংয়ের সর্বাধিক উপর ডাবল-ক্লিক করেন তবে আপনি পুরো স্ট্রিংটি নাও পেতে পারেন, কারণ পাঠ্য বাক্সটি কিছু অক্ষরে লাইনগুলি বিভক্ত করে +, যেমন আপনি +অক্ষরের পরে পাঠ্যটি নির্বাচন করেন না ( যা আপনি দেখতে পাচ্ছেন না কারণ পাঠ্য বাক্সটি খুব ছোট)। ssh-rsaপাঠ্য বাক্সের একেবারে শেষ পর্যন্ত সম্পূর্ণ স্ট্রিংটি ম্যানুয়ালি নির্বাচন করতে ভুলবেন না।


1

কখনও কখনও এটি একটি লাইনে সার্বজনীন কী থাকার সাথে সম্পর্কিত সমস্যা হতে পারে, এই পদ্ধতির সমাধান হওয়ায় মনে হয়

echo 'the content of the public key' > /root/.ssh/authorized_keys

1

আমার জন্য সমস্যাটি আমি ~/.ssh/authorized_keysরুট মালিকানাধীন তাই রুট ব্যবহার করে তৈরি করেছিলাম । আমি chown sshuser:sshuser ~/.ssh/authorized_keysতখন কাজ শুরু করেছিলাম


1

আমিও এই ত্রুটির মুখোমুখি হয়েছি এবং অনুমোদিত_কিস ফাইলটির অনুমতিগুলি এতে পরিবর্তন করে সমাধান করেছি 600

chmod 600 ~/.ssh/authorized_keys

1

সাধারণ ত্রুটিটি হ'ল লোকেরা পাঠ্য সম্পাদক (ভিমের মতো) ব্যবহার করে এবং "সন্নিবেশ" সক্রিয় করার আগে অনুলিপিযুক্ত পাঠ্যটি পেস্ট করে (পেস্ট করার আগে ভিমে আই + টিপুন)


0

আসলে, আমি authorized_keysএর অনুমতি পরিবর্তন করেছিলাম 644, তারপরে সমস্যার সমাধান হয়েছে।

chmod 644 ~/.ssh/authorized_keys

0

ডিবাগ করতে ওপেন এসএস ব্যবহার করতে পারেন:

sudo `which sshd` -p 2020 -Dd

এটি 2020 অন্যান্য বন্দরে এসএসডিডি চালায়। এটি বর্তমান প্রোগ্রাম হিসাবে এসএসডিডি চালায় তাই আউটপুট স্ক্রিনে যায়। বন্ধ হলে তা বন্ধ হয়ে যায়।

তারপরে সংযোগ দেওয়ার চেষ্টা করুন।

ব্যাখ্যা:

  • `যা sshd` - sshd ঠিকানা সনাক্ত করে, কোন sshd এটি কী প্রিন্ট করে তা কার্যকর করার চেষ্টা করুন। পিছনে কোট ব্যবহার করার সময় এটি কার্যকর করে এবং ফলাফলটি ফলস্বরূপ প্রদান করে।
  • -p 2020 - পোর্ট নির্দিষ্ট করে
  • -D - ফাইল লগ করুন
  • -d - স্ক্রিনে লগ

https://www.attachmate.com/documentation/rsit-unix-802/rsit-unix-guide/data/sshd_options_ap.htm


আপনি এই উত্তর উপর প্রসারিত করতে পারেন? যুক্তিগুলি কী জড়িত? আদেশটি কী করছে (কারও জন্য অভিজ্ঞ নয়)?
জাজাচ ...

-1

আমি রুট হিসাবে লগ ইন করার সময় .ssh এবং অনুমোদিত_কিগুলি ফাইল তৈরি করছিলাম যা ভুল অনুমতি দিয়েছে। এটি সমস্ত ফাইলকে মূল ডিরেক্টরিতে অন্তর্ভুক্ত করে।

আপনার ইচ্ছা মতো ব্যবহারকারীর কাছে এই ফাইলগুলির মালিকানা পরিবর্তন করা ভাল অনুশীলন হবে না, তাই আমি আমার পদক্ষেপগুলি পিছনে ফেলেছি এবং নিশ্চিত করেছিলাম যে আমি যে ব্যবহারকারী হিসাবে এসএসএইচ ব্যবহার করতে চাইছিলাম এবং আমি আবার এসএসএস এবং অনুমোদিত_কিজ তৈরি করতে চাইছিলাম আমি লগ ইন ছিলাম।

উইন 7 কে জুবুন্টু 15.04 সার্ভারের সাথে সংযোগ স্থাপনের দিকনির্দেশ: এসপিএইচ কীগুলি ডাব্লু / পুট্টি কোনও ভিপিএসের সাথে সংযুক্ত করার জন্য কীভাবে তৈরি করবেন

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