পাসওয়ার্ডহীন ssh কাজ করছে না


35

আমি সেটআপ করার চেষ্টা করেছি একটি পাসওয়ার্ড-কম SSH B / W Aকরতে Bএবং Bকরতে Aহিসাবে ভাল। ssh-keygen -trsaউভয় মেশিন ব্যবহার করে সরকারী এবং ব্যক্তিগত কী তৈরি করা হয়েছে। ব্যবহৃত ssh-copy-idউপযোগ থেকে জন-চাবি কপি করতে Aকরতে Bসেইসাথে Bথেকে A

Passwordless SSH থেকে কাজ করে Aযাওয়ার Bকিন্তু notথেকে Bথেকে A। আমি s / ssh / ফোল্ডারের অনুমতি পরীক্ষা করেছি এবং দেখে মনে হচ্ছে এটি স্বাভাবিক be

A's .ssh ফোল্ডার অনুমতি:

-rw-------  1 root root 13530 2011-07-26 23:00 known_hosts
-rw-------  1 root root   403 2011-07-27 00:35 id_rsa.pub
-rw-------  1 root root  1675 2011-07-27 00:35 id_rsa
-rw-------  1 root root   799 2011-07-27 00:37 authorized_keys
drwxrwx--- 70 root root  4096 2011-07-27 00:37 ..
drwx------  2 root root  4096 2011-07-27 00:38 .

B's .ssh ফোল্ডার অনুমতি:

-rw------- 1 root root  884 2011-07-07 13:15 known_hosts
-rw-r--r-- 1 root root  396 2011-07-27 00:15 id_rsa.pub
-rw------- 1 root root 1675 2011-07-27 00:15 id_rsa
-rw------- 1 root root 2545 2011-07-27 00:36 authorized_keys
drwxr-xr-x 8 root root 4096 2011-07-06 19:44 ..
drwx------ 2 root root 4096 2011-07-27 00:15 .

Aএকটি উবুন্টু 10.04 (ওপেনএসএসএইচ_5.3 পি 1 দেবিয়ান -3 বুন্টু 4, ওপেনএসএসএল 0.9.8 কে 25 মার্চ 2009) Bএকটি ডেবিয়ান মেশিন (ওপেনএসএসএইচ_5.1 পি 1 দেবিয়ান -5, ওপেনএসএসএল 0.9.8 জি 19 অক্টোবর 2007)

থেকে A:

#ssh B

ঠিকভাবে কাজ করে.

থেকে B:

#ssh -vvv A 
...
...
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /root/.ssh/identity ((nil))
debug2: key: /root/.ssh/id_rsa (0x7f1581f23a50)
debug2: key: /root/.ssh/id_dsa ((nil))
debug3: Wrote 64 bytes for a total of 1127
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-keyex,gssapi-with-mic,gssapi,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/identity
debug3: no such identity: /root/.ssh/identity
debug1: Offering public key: /root/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug3: Wrote 368 bytes for a total of 1495
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /root/.ssh/id_dsa
debug3: no such identity: /root/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
root@192.168.122.1's password: 

যার মূলত অর্থ এটি ফাইলটি ব্যবহার করে প্রমাণীকরণ করা হচ্ছে না /root/id_rsa। আমি ssh-addউভয় মেশিনে কমান্ড চালানো ।

/etc/ssh/sshd_configফাইলের প্রমাণীকরণের অংশটি

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile     %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files

আমি ধারণার বাইরে চলেছি। কোন সাহায্য প্রশংসা করা হবে।


PermitRootLoginএ- /etc/ssh/sshd_configতে কী স্থাপন করবে ?
টানেলি

@ ট্যানেলি: yesঅন্যথায় ব্যবহারকারীকে পাসওয়ার্ডের জন্য অনুরোধ করা হবে না।
লেকেনস্টেইন

আমার ক্ষেত্রে আমাকে উবুন্টু 12.04
মার্টিন ম্যাগাকিয়ান

উত্তর:


24

আপনি নিম্নলিখিত পদ্ধতিটি অনুসরণ করেছেন তা নিশ্চিত করুন:

মেশিনে এ

একটি টার্মিনাল খুলুন এবং নিম্নলিখিত কমান্ড লিখুন:

root@aneesh-pc:~# id

আমরা নিশ্চিত যে আমরা মূল।

উপরের কমান্ডের আউটপুট যদি নীচের মতো কিছু হয় তবে আমরা suকমান্ডটি ব্যবহার করে রুটে চলেছি

uid=0(root) gid=0(root) groups=0(root)

1) কীগুলি তৈরি করুন।

ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
49:7d:30:7d:67:db:58:51:42:75:78:9c:06:e1:0c:8d root@aneesh-pc
The key's randomart image is:
+--[ RSA 2048]----+
|          ooo+==B|
|         . E=.o+B|
|        . . .+.*o|
|       . . .  ...|
|        S        |
|                 |
|                 |
|                 |
|                 |
+-----------------+

আমি কোনও পাসফ্রেজ ব্যবহার করি নি। আপনার যদি প্রয়োজন হয় তবে আপনি এটি ব্যবহার করতে পারেন।

২) মেশিন বি এর .ssh/authorized_keysফাইলটিতে সর্বজনীন কী অনুলিপি করুন

root@aneesh-pc:~# ssh-copy-id -i /root/.ssh/id_rsa.pub root@mylap
root@mylap's password: 

এখন মেশিনে লগ ইন করার চেষ্টা করুন, সহ ssh 'root@mylap'এবং চেক ইন করুন:

~/.ssh/authorized_keys

আপনি আশা করছেন না এমন অতিরিক্ত কীগুলি আমরা যোগ করি নি তা নিশ্চিত করার জন্য।

আপনি লগইন করতে চান এমন মেশিনের হোস্টনাম বা আইপি দিয়ে মাইল্যাপটি প্রতিস্থাপন করুন (যেমন মেশিন বি)

৩) পাসওয়ার্ড ছাড়াই বিতে লগইন করুন

root@aneesh-pc:~# ssh root@mylap
Warning: Permanently added 'mylap,192.168.1.200' (RSA) to the list of known hosts.
Welcome to Ubuntu 11.04 (GNU/Linux 2.6.38-8-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

Last login: Wed Jul 27 15:23:58 2011 from streaming-desktop.local
aneesh@mylap:~$

মেশিনে বি

4) মেশিন এ এ আবার লগইন করতে কী তৈরি করুন

root@mylap:~# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
35:9f:e7:81:ed:02:f9:fd:ad:ef:08:c6:4e:19:76:b1 root@streaming-desktop
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|          o   .  |
|         . + + o |
|        S o * E  |
|           = O . |
|            O +  |
|           + o o.|
|            . o+=|
+-----------------+

৫) মেশিন এ এর .ssh/authorized_keysফাইলটিতে সর্বজনীন কী অনুলিপি করুন

root@mylap:~# ssh-copy-id -i /root/.ssh/id_rsa.pub root@aneesh-pc
Warning: Permanently added 'aneesh-pc,192.168.1.20' (RSA) to the list of known hosts.
root@aneesh-pc's password: 

এখন মেশিনে লগ ইন করার চেষ্টা করুন, সহ ssh 'root@aneesh-pc'এবং চেক ইন করুন:

.ssh/authorized_keys

আপনি আশা করছেন না এমন অতিরিক্ত কীগুলি আমরা যোগ করি নি তা নিশ্চিত করার জন্য।

6) পাসওয়ার্ড ছাড়াই এ লগইন করুন

ssh root@aneesh-pc
Warning: Permanently added 'aneesh-pc,192.168.1.20' (RSA) to the list of known hosts.
Welcome to Ubuntu 11.04 (GNU/Linux 2.6.38-8-generic x86_64)

 * Documentation:  https://help.ubuntu.com/


Last login: Tue Jul 26 18:52:55 2011 from 192.168.1.116

আপনি যদি এই পদক্ষেপগুলি সম্পূর্ণ করতে সক্ষম হন তবে আপনার কাজ শেষ। এখন আপনার কাছে ssh-key (সর্বজনীন-কী) সক্ষম লগইন সহ দুটি মেশিন রয়েছে।


নির্দিষ্ট হিসাবে 6 টি পদক্ষেপগুলি 5 টি পদক্ষেপের সাথে সম্পর্কিত সমস্ত বিষয় যাচাই করেছে, তবে 6 ধাপে কোনওভাবে কাজ হচ্ছে না
Cuurious

আপনি কি এই আদেশটির আউটপুট সরবরাহ করতে পারেন: 'ssh -v রুট @ aneesh-pc'। আপনার সাথে ব্যবহারকারীর নাম এবং হোস্টনাম প্রতিস্থাপন করুন।
aneeshep

15
অপরাধীকে /root(770) এর অনুমতিগুলি drwxrwx--- 70 root root 4096 2011-07-27 00:37 .. খুব বেশি খোলা রয়েছে বলে সন্ধান করে। অনুমতিগুলি পরিবর্তন করেছে drwxr-xr-xএবং এখন এটি কাজ করছে। অভিভাবক ডিরেক্টরির অনুমতি অনুমতি প্রভাবিত করে তা ভাবতে পারেনি ssh
কিউরিয়াস

1
@ কুরিয়াস গুড ক্যাচ, আমার হোম ডিরেক্টরিটিও 770সেট করেছিল, এটি একটিতে পরিবর্তিত হয়েছিল 750এবং এটি বিশ্বের সাথে ঠিক আছে :) আমি সর্বদা ভুলে যেতে চাই যে লিনাক্স প্রিমগুলি এর মতো বিপরীতে কাজ করতে পারে।
অনুমান 4

1
৩ য় ধাপে ব্যর্থতা ssh-copy-id আমি পাসওয়ার্ড প্রবেশের পরে চলে, তবে আমি পাসওয়ার্ডের জন্য জিজ্ঞাসা না করেই এখনও লগইন করতে পারিনি, আমার অনুমোদিত_কিজ ফাইলটিতে আমার .pub এর পাঠ্য রয়েছে এবং আমি লগইনটিতে কীটি সরবরাহ করছি । কোনও লাভ হয়নি। সমস্ত ডিরেক্টরিতে অনুমতি সঠিক।
ম্যাট ক্লার্ক

44

পাসওয়ার্ড-কম এসএসএস সেট আপ করার পরেও আমাকে আমার ব্যবহারকারীর পাসওয়ার্ড জিজ্ঞাসা করা হয়েছিল। /var/log/auth.logরিমোট মেশিনের দিকে তাকিয়ে বিষয়টি চিহ্নিত করা হয়েছে:

sshd[4215]: Authentication refused: bad ownership or modes for directory /home/<user>

সুতরাং, এটি ঠিক আছে তা নিশ্চিত করুন:

chmod o-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

আপনার .sshফোল্ডারে অন্য ব্যবহারকারীদের লিখতে নিষেধ করা স্পষ্ট, আপনার বাড়ির ফোল্ডারের জন্য একই প্রয়োজনীয়তাটি ছিল আরও জটিল ier

এছাড়াও, এবং বিকল্পগুলি অক্ষম না করা হয়েছে /etc/ssh/ssd_configতা নিশ্চিত করতে পরীক্ষা করুন। ডিফল্ট তাই কোনও সমস্যা হওয়া উচিত নয়।RSAAuthenticationPubkeyAuthenticationyes


উপরের তালিকাভুক্ত এই ফোল্ডারগুলি সঠিক ব্যবহারকারীর মালিকানা রয়েছে তা নিশ্চিত করুন
গোলবেসড

একটি খারাপভাবে তৈরি করা রিয়েলটেক ড্রাইভার সংরক্ষণাগারটি সন্ধান না করে আমি এই পরিস্থিতিতে পড়েছি। এটি যে ডিরেক্টরিতে আমি এটি তৈরি করেছিলাম তার মালিকটিকে পরিবর্তন করে।
পল ম্যাকমিলান

2
আপনার বাড়ির ফোল্ডারটি লিখনযোগ্য হতে পারে না কারণ এটি যদি হয় তবে আমি কেবল আপনার ~/.sshনতুন নামটি অন্য কোনও কিছুতে রাখতে পারি, এবং তারপরে সেখানে আমার নিজস্ব কী দিয়ে একটি নতুন তৈরি করতে পারি।
কেভিন পানকো

2
অসাধারণ! হোস্ট মেশিনে লগগুলি সন্ধান করার বিষয়ে ভাবেনি। ধন্যবাদ!
user3099609

14

সম্ভবত কেবলমাত্র একটি উচ্চ স্তরের অনুমতিের সমস্যা। আপনাকে করার প্রয়োজন আপনার বাড়িতে ডিরেক্টরি ও .ssh নির্দেশিকাতে গ্রুপ এবং অপরের থেকে লেখার অনুমতি মুছে ফেলুন। এই অনুমতিগুলি ঠিক করতে, চালান chmod 755 ~ ~/.sshবা chmod go-w ~ ~/.ssh

যদি আপনার এখনও সমস্যা হয় তবে আপনার লগে নিম্নলিখিত গ্রেপটি ইস্যু করুন:

sudo egrep -i 'ssh.*LOCAL_USER_NAME' /var/log/secure

( LOCAL_USER_NAMEআপনার স্থানীয় ব্যবহারকারীর নাম দিয়ে প্রতিস্থাপন ...)

এটি আশাবাদী আপনাকে আপনার সমস্যা সম্পর্কে আরও বলতে হবে, ধরে নিই যে sshd প্রমাণীকরণের তথ্য সুরক্ষিত লগতে লগ করা হচ্ছে যা পূর্বনির্ধারিত হওয়া উচিত। আপনি যদি দেখতে ত্রুটিগুলি দেখতে পান তবে:

তারিখ HOSTNAME sshd [১৩১17]: প্রমাণীকরণ অস্বীকার করেছে: ডিরেক্টরি / পাথ / থেকে / কিছু / ডিরেক্টরিতে খারাপ মালিকানা বা মোড

এটি উপরে বর্ণিত সমস্যা এবং আপনাকে প্রশ্নে ডিরেক্টরিটি খুঁজে বের করতে হবে এবং গ্রুপ এবং অন্যান্য থেকে লিখিত অনুমতিগুলি সরিয়ে ফেলতে হবে।

যে কারণে আপনার নিজের ডিরেক্টরিতে লেখার অনুমতিগুলি সীমাবদ্ধ করতে হবে (যদিও আপনার .ssh এবং পরবর্তী ডিরেক্টরিগুলিতে অনুমতিগুলি ইতিমধ্যে সীমাবদ্ধ রয়েছে) এটি অন্য ব্যবহারকারীদের আপনার .ssh ডিরেক্টরিটির নাম পরিবর্তন করে নতুন করে তৈরি করার অনুমতি দেবে - যদিও তা (ভুল অনুমতিজনিত কারণে) ব্যবহারযোগ্য হবে না বেশিরভাগ ব্যবহারকারীর জন্য সম্ভবত সম্ভবত ডিরেক্টরিগুলির বিষয়বস্তু পরীক্ষা করার পরিবর্তে অনুমতিগুলি পরিবর্তন করা ...

টিএলডিএনআর : আপনার হোম ডিরেক্টরিতে গোষ্ঠী এবং / অথবা অন্যের জন্য লেখার প্রবেশাধিকারের অনুমতি দিলে এসএসএস ফোর্স পাসওয়ার্ড লগইন হবে।


2

আপনি কি প্রতিটি মেশিনে রুট অ্যাকাউন্ট ব্যবহার করছেন? সাধারণত উবুন্টুতে আপনি একটি ব্যবহারকারীর অ্যাকাউন্ট ব্যবহার করতেন এবং এটি প্রয়োজনীয় হিসাবে sudo সুবিধাদি দিতেন।

আপনি যদি অ মূল ব্যবহারকারীর ব্যবহার sudo chown $USER -R ~/.sshআপনার সমস্যাটি সমাধান করতে পারেন

অন্যান্য জিনিস যাচাই করতে হবে:

ডাবল পরীক্ষা করে দেখুন যে বি এর id_rsa.pubএ আছে authorized_keys

এর /etc/ssh/sshd_configরয়েছে যাচাই করুন

PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes

হ্যাঁ, আমি উবুন্টু মেশিনে মূল অ্যাকাউন্টটি সক্ষম করেছি, সুতরাং উভয় সিস্টেমে রুট ব্যবহারকারী হিসাবে চলছে
Cuurious

হ্যাঁ আমি বুঝতে পেরেছি, আপনি উপেক্ষা করতে পারেন এমন আরও কয়েকটি পরামর্শ যুক্ত করেছেন। এই আউটপুটটি সত্যই নিরর্থক যদিও এটি নয়, কেন আরএসএ গৃহীত হয়নি সে সম্পর্কে কিছুই নয়।
স্মিথাম্যাক্স

1
আপনি সত্য যে কারণে আরএসএ কী গ্রহণ করা হয়নি তা হ'ল এখানে অনুমান করা প্রয়োজনীয় উপাদানটি :)। sshd_config উপরে উল্লিখিত উপাদানগুলি ধারণ করে, আমি /etc/ssh/sshd_configফাইলের বিষয়বস্তুগুলির বিষয়বস্তু অন্তর্ভুক্ত করার জন্য প্রশ্নটি সম্পাদনা করেছি
Cuurious

-3

ইন / ইত্যাদি / ssh / sshd_config লক্ষ্য পরিবর্তন

পারমিটরটলগিন নং

থেকে

পারমিটরটলগিন হ্যাঁ

তারপরে হত্যা করুন - আপনার এসএসডি পিআইডি:

রুট @ dzone2 # PS -ef | গ্রেপ এসএসএস রুট 28075 27576 0 নভেম্বর 17? 6:11 / usr / lib / ssh / sshd

root 17708 20618   0 10:09:30 pts/37      0:00 grep ssh root@dzone2 # kill -HUP 28075 root@dzone2 # ps -ef|grep ssh
root 17861 20618   0 10:09:44 pts/37      0:00 grep ssh
root 17852 27576   0 10:09:42 ?           0:00 /usr/lib/ssh/sshd

1
এই সাহায্য করবে না। সমস্যাটি হ'ল পাসওয়ার্ডহীন এসএসএইচ লগইন (কোনও আরএসএ কী জোড় দিয়ে প্রমাণীকরণ করা) কাজ করছে না। আপনার দেওয়া নির্দেশাবলী rootএসএসএইচ লগইন কাজ করার জন্য। এটি এই প্রশ্নটি সম্পর্কে সম্পূর্ণরূপে সম্পর্কিত নয়। তদতিরিক্ত, যদি rootঅ্যাকাউন্ট সক্ষম করা থাকে (এটি উবুন্টুতে ডিফল্টরূপে নয়) তবে rootএসএসএইচ লগইন সক্ষম করা বেশ বিপজ্জনক হতে পারে।
এলিয়াহ কাগন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.