আমি কীভাবে পাসওয়ার্ড-কম এসএসএইচ লগইন সেট আপ করতে পারি?


252

আমি সমস্ত সময় পাসওয়ার্ডটি প্রবেশ না করেই এসএসএসের মাধ্যমে কোনও রিমোটে লগইন করতে সক্ষম হতে চাই।

  • কীভাবে সেট আপ করব?
  • পাসওয়ার্ড-কম সেশন চালানোর জন্য কি আলাদা কমান্ডের প্রয়োজন?

আপনি কি ওপেনশ ব্যবহার করছেন? (যদি তা খুব সহজ;))
রিনজুইন্ড

@ রিনজুইন্ড, ওপেনএসএইচএলটি ইতিমধ্যে ইনস্টল করা থাকলে কেন আমি মালিকানাধীন সংস্করণটি পেতে বিরক্ত করব?
অক্সভিভি

15
আমি অনুমানগুলি না করার চেষ্টা করি;)
রিনজুইন্ড

1
কেভিন, দয়া করে নিজেকে পরিষ্কার করুন। আমরা পাসওয়ার্ড ছাড়াই ssh-ing সম্পর্কে কথা বলছি, যা সাধারণত একটি ভাল অনুশীলন । আপনার অর্থ কি কোনও শট-এ শ্যাশ-ইনগিং? এটি এই প্রশ্নের আওতায় আসে না।
অক্সভিভি

@ অক্সভিভি: দুঃখিত, এটি রবীন্দ্রর জবাব সম্পর্কে মন্তব্য করা উচিত ছিল, যা মূল লগইনে লক্ষ্যযুক্ত।
কেভিন

উত্তর:


266

উত্তর

এই আদেশগুলি কার্যকর করুন:

ssh-keygen

তারপরে আপনাকে আপনার সার্ভারে নতুন কীটি অনুলিপি করতে হবে :

ssh-copy-id user@host
## or if your server uses custom port no:
ssh-copy-id "user@host -p 1234"

কীটি অনুলিপি করার পরে, মেশিনে স্বাভাবিক হিসাবে ssh করুন:

ssh user@host

আপনি যে কমান্ডগুলি কমান্ড করেছেন তা নির্দিষ্ট মেশিনের পাসওয়ার্ড না দিয়েই আপনি লগইন করতে পারেন।

উদাহরণ

not-marco@rinzwind-desktop:~$ ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/not-marco/.ssh/id_rsa): 
Created directory '/home/not-marco/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/not-marco/.ssh/id_rsa.
Your public key has been saved in /home/not-marco/.ssh/id_rsa.pub.
The key fingerprint is:
b1:25:04:21:1a:38:73:38:3c:e9:e4:5b:81:e9:ac:0f not-marco@rinzwind-desktop
The key's randomart image is:
+--[ RSA 2048]----+
|.o= . oo.        |
|*B.+ . .         |
|*=o .   o .      |
| = .     =       |
|. o     S        |
|E.               |
| o               |
|  .              |
|                 |
+-----------------+

not-marco@rinzwind-desktop:~$ ssh-copy-id not-marco@server
not-marco@server's password: 
Now try logging into the machine, with "ssh 'not-marco@server'", and check in:

  ~/.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

ব্যাখ্যা

এটি ধরে নিয়েছে যে আপনি ইতিমধ্যে SSH- এর মাধ্যমে আপনার সার্ভারের সাথে সফলভাবে সংযোগ করতে পারবেন।

আপনাকে একটি এসএসএইচ কী-পিয়ার তৈরি করতে হবে যা আপনাকে পাসওয়ার্ড ব্যবহার না করে আপনাকে নিজের মতো করে সনাক্ত করতে দেয়। আপনি যদি চান তবে একটি পাসকোড দিয়ে কীগুলি সুরক্ষিত করতে বেছে নিতে পারেন তবে এটি পুরোপুরি পাসওয়ার্ড-কম এসএসএইচ অ্যাক্সেসের অনুমতি দিয়ে ফাঁকা ছেড়ে যেতে পারে।

  1. প্রথমে এটি চালিয়ে আপনার এসএসএইচ কিপায়ার ssh-keygenতৈরি করুন একটি ফাইল id_rsaএবং id_rsa.pubফাইল তৈরি করবে । pubফাইল কি সার্ভারে যায়, প্রাইভেট কী (হয় id_rsa) কি আপনার সাথে থাকে এবং আপনি কিভাবে নিজেকে চিহ্নিত হয়।
  2. এরপরে ssh-copy-id user@serverআপনার দূরবর্তী ব্যবহারকারী এবং সার্ভারের সাথে মেশিন ডিএনএস নাম বা আইপি ঠিকানা দিয়ে ব্যবহারকারীকে প্রতিস্থাপন করে আপনার সার্ভারে সর্বজনীন কীটি অনুলিপি করুন । এটি আপনার এসএসএইচ পাসওয়ার্ডের জন্য অনুরোধ জানাবে, এটি প্রবেশ করান এবং যদি সমস্ত সফলভাবে সম্পূর্ণ হয় তবে আপনি ssh user@serverকোনও পাসওয়ার্ডের প্রয়োজন ছাড়াই মেশিনটিতে অ্যাক্সেস করতে সক্ষম হবেন ।

তথ্যসূত্র


11
@ অক্সভিভি এই উত্তরটি এটি করার আরও সঠিক উপায় - তবে এটি আরও দীর্ঘ বলে মনে হচ্ছে। আপনাকে যা করতে হবে তা হ'ল ssh-keygenঅন-স্ক্রীন নির্দেশাবলী অনুসরণ করুন, তারপরে ssh-copy-id user@serverআপনার রিমোট ব্যবহারকারী এবং সার্ভারের সাথে রিমোট মেশিনের মাধ্যমে ব্যবহারকারীকে প্রতিস্থাপন করুন
মার্কো সেপ্পি

3
আমার এই ত্রুটিটি ছিল "এজেন্ট কীটি ব্যবহার করে স্বাক্ষর করতে ব্যর্থতা স্বীকার করেছে।" প্রতিটি সময় এই পদ্ধতি অনুসরণ করার পরে লগইন করার চেষ্টা করার সময়। সমাধানটি ছিল স্থানীয় মেশিনে "> এসএসএড-অ্যাড" চালানো এবং এখন আমি প্রত্যাশা অনুযায়ী দূরবর্তী মেশিনে লগইন করতে পারি।
jmbouffard

1
এটি যে আপনি @server জন্য কাস্টম বন্দর ব্যবহার করতে হবে তাহলে আপনি এই করতে হবে উল্লেখ দরকারী নয়: ssh-copy-id "not-marco@127.0.0.1 -p 1234"
s3m3n

@ রিঞ্জউইন্ড: এর অর্থ কি এই যে আমি পাসওয়ার্ড প্রমাণীকরণটি অক্ষম করে রাখি এবং কেবল কী প্রমাণীকরণের অনুমতি দিলে আমি কখনই আমার সার্ভারে অজানা ক্লায়েন্ট / মেশিন থেকে প্রমাণীকরণ করতে পারি না। পরিচিত / কনফিগার করা ক্লায়েন্টকে সার্ভারের সাথে যোগাযোগ করার জন্য তৈরি করা ব্যক্তিগত কী ব্যবহার করে অজানা মেশিন থেকে লগইন করার কোনও উপায় আছে কি? মানে, এই ব্যক্তিগত কী পোর্টেবল এবং জরুরি প্রয়োজনে অন্য মেশিন থেকে নিজেকে সার্ভারে প্রমাণীকরণ করতে ব্যবহার করা যেতে পারে ??
রজত গুপ্ত

4
কিন্তু সার্ভারটি এখনও পাসওয়ার্ডের জন্য জিজ্ঞাসা করছে ,,,
লারনার জাং

34

নিম্নলিখিত আদেশগুলি টাইপ করুন:

  1. ssh-keygen

    Enterআপনি প্রম্পট না পাওয়া পর্যন্ত কী টিপুন

  2. ssh-copy-id -i root@ip_address

    (এটি একবার হোস্ট সিস্টেমের পাসওয়ার্ড জানতে চাইবে)

  3. ssh root@ip_address

এখন আপনার কোনও পাসওয়ার্ড ছাড়াই লগইন করতে সক্ষম হওয়া উচিত।


25

আমি সাধারণত এটি করার উপায়টি নিম্নরূপ:

ssh-keygen -t rsa

(যখন কোনও পাসওয়ার্ডের জন্য অনুরোধ করা হয়, এটিকে ফাঁকা ছেড়ে দিন)

তারপর: cat ~/.ssh/id_rsa.pub | ssh username@hostname 'cat >> .ssh/authorized_keys'

(এটির জন্য নির্ধারিত হোস্টনেম ডিরেক্টরি ডিরেক্টরিতে হোম ডিরেক্টরিতে থাকা জন্য .ssh ফোল্ডারটি থাকা দরকার)

অবশ্যই, কাঙ্ক্ষিত ব্যবহারকারীর নাম দিয়ে ইউজারনেম এবং কাঙ্ক্ষিত হোস্টনাম বা আইপি ঠিকানা দিয়ে হোস্টনাম প্রতিস্থাপন করুন

এর পরে, আপনি যেমন অভ্যস্ত তেমন ঠিক সেই বাক্সে এসএসএইচ করুন।


রিনজউইন্ডের উত্তরে কী touchএবং chmodকমান্ড সম্পর্কে ?
অক্সভিভি

7
.ssh/authorized_keysআপনাকে 0600 এ ফাইলটি
চিএমড

এটি সত্যই সহায়তা করেছে কারণ আমি আমার সার্ভারে রুটের জন্য ssh-copy-id পেতে পারি না। এটি ব্যাকআপসি (বা অন্য কোনও ডেমন) অন্য কোনও মেশিনে প্রবেশ করতে হবে এমন পরিস্থিতিতে রুট হতে হবে।
অ্যাডাম

18

আমি সাধারণত sshpassএটির জন্য ব্যবহার করি, এটি ইনস্টল করুন sudo apt-get install sshpassএবং এটি এর মতো ব্যবহার করুন

sshpass -p 'password' ssh your_username@your_server

6
কেন ssh কী ব্যবহার করবেন না?
এনজোটিব

1
এটি কোনও "কেন নয়" পরিস্থিতি নয়, এটি কীগুলি যুক্ত না করে এখনও নিখুঁতভাবে কাজ করে, এটি আমার অন্য একটি পদ্ধতি method
ব্রুনো পেরেইরা

Sshpass সম্পর্কিত তথ্যের জন্য ধন্যবাদ, এর আগে এর আগে কখনও শুনিনি।
প্যান্থার

7
এসএসএইচ কীগুলি sshpassহ'ল প্রশ্নের "সঠিক" উত্তর, তবে আপনি যখন রিমোট সার্ভারে প্রমাণীকরণ পদ্ধতিটি পরিবর্তন করতে পারবেন না তখন এটি খুব কার্যকর হ্যাক!
জ্যাকব কুলর

9
এটি অত্যন্ত বিপজ্জনক, আপনি বাশ_ইস্ত্রি বা আপনার সাথে সংযুক্ত যে হোস্টগুলির জন্য সরল পাসওয়ার্ডগুলি রাখবেন ..
কাপ্পা

10

পাসওয়ার্ড প্রমাণীকরণ অক্ষম করুন

যেহেতু এসএসএইচ সার্ভার সহ অনেক লোক দুর্বল পাসওয়ার্ড ব্যবহার করে, অনেক অনলাইন আক্রমণকারী এসএসএইচ সার্ভারের সন্ধান করবে, তারপরে এলোমেলোভাবে পাসওয়ার্ড অনুমান করা শুরু করবে। একজন আক্রমণকারী এক ঘন্টার মধ্যে কয়েক হাজার পাসওয়ার্ড চেষ্টা করতে পারে এবং যথেষ্ট সময় দেওয়া শক্তিশালী পাসওয়ার্ডও অনুমান করতে পারে। প্রস্তাবিত সমাধান হ'ল পাসওয়ার্ডের পরিবর্তে এসএসএইচ কী ব্যবহার করা। সাধারণ এসএসএইচ কী হিসাবে অনুমান করা শক্ত হতে, একটি পাসওয়ার্ডে 4৩৪ টি এলোমেলো অক্ষর এবং সংখ্যা থাকতে হবে। আপনি যদি সর্বদা কোনও এসএসএইচ কী দিয়ে আপনার কম্পিউটারে লগ ইন করতে সক্ষম হন তবে আপনার পাসওয়ার্ড প্রমাণীকরণ পুরোপুরি অক্ষম করা উচিত।

আপনি যদি পাসওয়ার্ড প্রমাণীকরণ অক্ষম করেন তবে কেবলমাত্র আপনি বিশেষত অনুমোদিত কম্পিউটারগুলি থেকে সংযোগ স্থাপন সম্ভব হবে। এটি আপনার সুরক্ষার ব্যাপকভাবে উন্নতি করে তবে পিসিকে প্রাক-অনুমোদন না দিয়ে বা আপনার নিজের ল্যাপটপ থেকে যখন আপনি দুর্ঘটনাক্রমে আপনার কী মুছে ফেলেন তখন বন্ধুর পিসি থেকে আপনার নিজের কম্পিউটারের সাথে সংযোগ স্থাপন করা আপনার পক্ষে অসম্ভব হয়ে পড়ে।

পাসওয়ার্ড প্রমাণীকরণ অক্ষম করার পরামর্শ দেওয়া হচ্ছে যদি না আপনার নির্দিষ্ট কারণ না থাকে।

পাসওয়ার্ড প্রমাণীকরণ অক্ষম করতে, আপনার sshd_config ফাইলে নিম্নলিখিত লাইনটি দেখুন:

#PasswordAuthentication yes

এটি দেখতে এমন একটি লাইনের সাথে প্রতিস্থাপন করুন:

PasswordAuthentication no

আপনি একবার ফাইলটি সংরক্ষণ করে এবং আপনার এসএসএইচ সার্ভারটি পুনরায় শুরু করার পরে, আপনি লগ ইন করার সময় এমনকি একটি পাসওয়ার্ডও জিজ্ঞাসা করা উচিত নয়।

https://help.ubuntu.com/community/SSH/OpenSSH/Configuring#disable-password-authentication


2
এটি সর্বাধিক প্রাথমিক সঠিক উত্তর তবে সুরক্ষার পক্ষে ভাল! এছাড়াও রুট লগইন নিষ্ক্রিয় করা আরেকটি ভাল
ফ্রিসফটওয়্যার সার্ভার

না PasswordAuthentication noসব ব্যবহারকারীদের প্রভাবিত করে? যদি তা না হয় তবে আমি কীভাবে এটি সাধারণ ব্যবহারকারীর জন্য বন্ধ করব তবে এটি পরীক্ষার সময় এটি মূলের জন্য অপরিবর্তিত রাখব? আমি সত্যিই এটি দেখতে চাই এবং নিজেকে পুরোপুরি লক আউট করতে চাই না।
অ্যাডাম

একটি ssh অধিবেশন উন্মুক্ত রাখুন যাতে আপনি এটি আবার পরিবর্তন করতে পারেন। আপনি পাসওয়ার্ড এবং রুট অক্ষম করতে চান। হ্যাঁ, আপনি এটি আবদ্ধ করতে পারেন। করবেন না;)
থুফির

Ssh চলাকালীন, আমার Permission denied (publickey).সাথে একটি ত্রুটি রয়েছে PasswordAuthentication no। আমার কি করা উচিত? আমি কি PasswordAuthentication noঅন্য হোস্টে পরিবর্তন করব ?
প্যারিসাএন

9

এই সমাধান ব্যবহারকারীদের ব্যবহারের জন্য বিশেষভাবে হয় উইন্ডোজ থেকে SSH উপর মেঘ চিত্র সহ দূরবর্তী মেশিন মধ্যে ডেস্কটপ AWS ক্লাউড এবং জিসিই পরীক্ষায় ক্লাউড

দাবি পরিত্যাগী

সম্প্রতি জিসিইতে রিমোট লগইন নতুন মোতায়েন করা ভিএম চিত্রগুলিতে এই সমাধানটি ব্যবহার করেছেন।


ব্যবহৃত সরঞ্জামগুলি:

  1. puttygen পুটটিজেন ডাউনলোড
  2. winscp winscp ডাউনলোড

সম্পাদন করার পদক্ষেপ:

  1. পুটটিজেন ব্যবহার করে পাবলিক / প্রাইভেট কী জুড়ি উত্পন্ন করুন।
  2. ক্লাউড বা দূরবর্তী অবস্থানে আপনার সার্ভারে সর্বজনীন কী আপলোড করুন।

এটা কিভাবে করতে হবে:

1. একটি কী / জুড়ি তৈরি করুন বা বিদ্যমান ব্যক্তিগত কী ব্যবহার করুন

আপনার যদি একটি ব্যক্তিগত কী থাকে:

খুলুন puttygen, লোড বোতাম টিপুন এবং আপনার ব্যক্তিগত কী ( *.pem) ফাইল নির্বাচন করুন।


যদি আপনার ব্যক্তিগত কী না থাকে:

  • খোলা puttygen,
  • প্যারামিটার বিভাগের মধ্যে পছন্দসই মূল প্রকারের এসএসএইচ 2 ডিএসএ নির্বাচন করুন (আপনি আরএসএ বা ডিএসএ ব্যবহার করতে পারেন) । এটি গুরুত্বপূর্ণ যে আপনি পাসফ্রেজ ক্ষেত্রটি ফাঁকা ছেড়ে যান।
  • generate(পাবলিক / প্রাইভেট) কী জুড়ি উত্পন্ন করতে নির্দেশাবলী টিপুন এবং অনুসরণ করুন।

নমুনা কী জেনারেশনের ছবি

(উত্স 1 থেকে, নীচে দেওয়া লিঙ্ক)

২. একটি নতুন 'অনুমোদিত_ কুকি' ফাইল তৈরি করুন (এর সাথে notepad)

পুটি কী জেনারেটরের বিভাগ "ওপেনএসএইচ অনুমোদিত_কিগুলি ফাইলে আটকানোর জন্য সর্বজনীন কী" থেকে আপনার সর্বজনীন কী ডেটা অনুলিপি করুন এবং কী ডেটাটি authorized_keysফাইলটিতে আটকান ।


এই ফাইলটিতে পাঠ্যের একটি মাত্র লাইন রয়েছে তা নিশ্চিত করুন।


৩. লিনাক্স সার্ভারে কী আপলোড করুন

  • WinSCP খুলুন,
  • SFTP ফাইল প্রোটোকল নির্বাচন করুন এবং আপনার ssh শংসাপত্রগুলির সাথে লগইন করুন।
  • সাফল্যে আপনি নিজের দূরবর্তী মেশিনে হোম ডিরেক্টরি কাঠামো দেখতে পান।

রিমোট মেশিনে হোম ডিরেক্টরিতে অনুমোদিত_কিগুলি ফাইল আপলোড করুন।


৪. যথাযথ অনুমতি নির্ধারণ করুন

.sshডিরেক্টরি তৈরি করুন (বিদ্যমান না থাকলে)


ডিরেক্টরিতে authorized_keysফাইল অনুলিপি করুন .ssh
(এটি কোনও বিদ্যমান authorized_keysফাইলকে প্রতিস্থাপন করবে , এটি দ্রষ্টব্য)।

যদি ফাইলটি বিদ্যমান থাকে তবে কেবল বিদ্যমান ফাইলটিতে এই ফাইলটির বিষয়বস্তু যুক্ত করুন।


অনুমতি সেট করতে কমান্ডগুলি চালান:

sudo chmod 700 .ssh && chmod 600 .ssh/authorized_keys

এখন আপনি sshপ্রতিবার শংসাপত্র প্রবেশ না করে দূরবর্তী মেশিনে সক্ষম হবেন ।

আরও পড়া:


4

আপনি যদি একটি সর্বজনীন / প্রিকেট কী-পেয়ার তৈরি করেন এবং আমাদের সদ্য নির্মিত সর্বজনীন কী ব্যবহার করে লগ ইন করেন, আপনাকে আপনার পাসওয়ার্ড টাইপ করতে হবে না। আপনার কী-রিং এবং / অথবা ssh এজেন্টের কনফিগারেশনের উপর নির্ভর করে আপনার একটি পাসফ্রেজের সাহায্যে আপনার কী রক্ষা করতে হবে।

আপনার পক্ষে এটি কতগুলি সংক্ষিপ্ত আকারের । এই পদ্ধতির সুরক্ষার পক্ষে এটি অত্যন্ত গুরুত্বপূর্ণ, উত্পন্ন ব্যক্তিগত কীটি ব্যক্তিগত থেকে যায়! আপনার এটি কখনই কারও সাথে ভাগ করে নেওয়া বা কোনও ক্ষমতায় এটির অ্যাক্সেসের অনুমতি দেওয়া উচিত নয়।

এই কমান্ডটি এখানে যুক্তিসঙ্গত দৃ strong় কী উত্পন্ন করে ~/.ssh/:

ssh-keygen -b 4096

ইন ~/.ssh/আপনি হিসাবে আপনার সর্বজনীন কী পাবেন id_rsa.pub। পরিবহনযোগ্য authorized_keysমিডিয়া (পেনড্রাইভ) এর মাধ্যমে পরিবহন করে বা শীঘ্রই সার্ভারে পাসওয়ার্ড প্রমাণীকরণ সক্ষম করে, তারপরে ssh-copy-id ~/.ssh/id_rsa.pub username@serverআবার এটি অক্ষম করে এর সার্ভার ফাইলে এর বিষয়বস্তু যুক্ত করা উচিত ।

আপনি যদি কোনও পাসফ্রেজ দিয়ে নিজের কীটি সুরক্ষিত করা বেছে নিয়ে থাকেন (প্রথম ধাপে) তবে আপনি ssh-agentস্থানীয়ভাবে এই পার্সিকে সুরক্ষিত করতে উবুন্টু কিরিংটি ব্যবহার করতে পারেন যাতে আপনাকে সর্বদা টাইপ করতে হবে না।


3

কিছু সংযোজন করতে:

  • ডিফল্টভাবে ম্যাকের নেই ssh-copy-id, আপনাকে এটি নিজেই ইনস্টল করতে হবে:

    curl https://raw.github.com/beautifulcode/ssh-copy-id-for-OSX/master/ssh-copy-id.sh -o /usr/local/bin/ssh-copy-id
    chmod +x /usr/local/bin/ssh-copy-id
    

এখানে আরও সন্ধান করুন: https://github.com/be beautycode / ssh-copy-id-for-OSX

  • আপনি যদি পোর্ট-ফরওয়ার্ডিং করেন তবে কমান্ডটি এমন হওয়া উচিত:

    ssh-copy-id "not-marco@127.0.0.1 -p 2222"
    

উল্লেখ্য যে উদ্ধৃতিগুলি প্রয়োজনীয়।


3

পাসওয়ার্ড না দিয়ে দূরবর্তী লগইন / অনুলিপি

অ্যাপ্লিকেশন sshএবং scpদূরবর্তী লগইন এবং রিমোট কপির জন্য যথাক্রমে আপনাকে পাসওয়ার্ড না দিয়ে দূরবর্তী হোস্টের সাথে যোগাযোগের অনুমতি দেয় to এর জন্য আপনাকে নীচের বর্ণিত মত একটি প্রমাণীকরণ পদ্ধতি অনুসরণ করতে হবে। ক্লায়েন্ট দ্বারা আমরা বোঝাতে চাইছি যে মেশিনটি আপনি বসে আছেন এবং সার্ভার দিয়ে আমরা বোঝাতে চাইছি যে মেশিনটি আপনি পাসওয়ার্ড না দিয়ে লগইন করতে চান। প্রমাণীকরণ পদ্ধতির পদক্ষেপগুলি হ'ল:

  1. আপনার মেশিনে এটি ইতিমধ্যে সম্পন্ন না করা হলে প্রাইভেট এবং পাবলিক কী উত্পন্ন করতে ssh-keygen চালান। এগুলি ফাইলগুলিতে সংরক্ষণ করা হয় $HOME/.ssh
  2. ফাইলটিতে $HOME/.ssh/authorized_keysবা $HOME/.ssh/authorized_keys2সার্ভারে সর্বজনীন কী ফাইলের বিষয়বস্তু যুক্ত করুন ।

তিনটি বিভিন্ন ধরণের প্রমাণীকরণের প্রোটোকল রয়েছে। Ssh-keygen চলাকালীন আপনি প্রকারটি নির্দিষ্ট করে দিন:

  1. এসএসএইচ প্রোটোকল সংস্করণ 1, আরএসএ 1 : এটি ডিফল্ট পছন্দ এবং ফাইলগুলির পরিচয়ের ফলাফল (ব্যক্তিগত কী, chmod 0700এই ফাইলটি অন্যদের জন্য পঠনযোগ্য নয় তা নিশ্চিত করে নেওয়া উচিত ) এবং পরিচয়.পব (পাবলিক কী)।
  2. এসএসএইচ প্রোটোকল সংস্করণ 1, আরএসএ : এটি চালানো দ্বারা প্রাপ্ত হয় ssh-keygen -t rsaএবং ফাইলগুলি id_rsa(প্রাইভেট কী) এবং id_rsa.pub(সর্বজনীন কী) ফলাফল করে
  3. এসএসএইচ প্রোটোকল সংস্করণ 1, ডিএসএ : এটি চালানো দ্বারা প্রাপ্ত হয় ssh-keygen -t dsaএবং ফাইলগুলি id_dsa(প্রাইভেট কী) এবং id_dsa.pub(সর্বজনীন কী) ফলাফল করে

Ssh-keygen চলাকালীন আপনি ডিফল্ট উত্তরের উপর নির্ভর করতে পারেন (বোঝায় যে আপনি কোনও পাসফ্রেজ দেন না)। এটি পুরো সেট আপটিকে সহজ করে তোলে তবে নিরাপদও করে তোলে।

আপনি ssh করতে একটি বিকল্প দ্বারা কী কী প্রকারের ব্যবহার করতে পারেন তা নির্দিষ্ট করতে পারেন ; ssh -1বাহিনী ব্যবহার RSA1 কি-সংকলন (প্রোটোকল সংস্করণ 1), যেহেতু ssh -2বাহিনী SSH চেষ্টা আরএসএ বা জেলাকে শুধুমাত্র কি-সংকলন (প্রোটোকল সংস্করণ 2)। নীচের উদাহরণগুলিতে আমরা রিমোট হোস্টে আরএসএ 1 এবং ডিএসএ কীগুলি উত্পন্ন এবং ইনস্টল করি যাতে আপনার আরও নমনীয়তা থাকে। আপনি .sshলাইনটি দিয়ে আপনার ডিরেক্টরিতে একটি কনফিগার ফাইল তৈরি করতে পারেন

Protocol 1,2

ফলে SSH একটি চেষ্টা RSA1 (প্রোটোকল সংস্করণ 1) সামনে সংযোগ আরএসএ / জেলাকে (প্রোটোকল সংস্করণ 2)।

আরএসএ 1 কী ব্যবহার করা হচ্ছে

remote=user@remotehost   # fill in correct user and remotehost names
cd $HOME/.ssh
# create .ssh on remote host if it is non-existing:
ssh $remote 'if [ ! -d .ssh ]; then mkdir .ssh; fi' 
# copy RSA1 key: 
scp identity.pub ${remote}:.ssh
ssh $remote "cd .ssh; cat identity.pub >> authorized_keys"

ডিএসএ কী ব্যবহার করা হচ্ছে

remote=user@remotehost   # fill in correct user and remotehost names
cd $HOME/.ssh
# create .ssh on remote host if it is non-existing:
ssh $remote 'if [ ! -d .ssh ]; then mkdir .ssh; fi' 
# copy DSA key: 
scp id_dsa.pub ${remote}:.ssh
ssh $remote "cd .ssh; cat id_dsa.pub >> authorized_keys2"

কীগুলি উত্পন্ন করার সময় আপনি যদি কোনও পাসফ্রেজ ব্যবহার না করেন তবে আপনাকে এটি করতে হবে। আপনি ssh s রিমোট চালিয়ে সংযোগটি পরীক্ষা করতে পারেন এবং পাসওয়ার্ড না দিয়েই আপনি লগ ইন করতে পারেন কিনা তা দেখতে (আপনার প্রয়োজন হতে পারে -1বা এসএসএসের-2 বিকল্প হিসাবে প্রয়োজন হতে পারে )। প্রক্রিয়াটি অবশ্যই আপনি যে কোনও মেশিনে লগ ইন করতে চান তার জন্য পুনরাবৃত্তি হতে পারে।

আপনি যদি একটি পাসফ্রেজ ব্যবহার করেন তবে আপনাকে ssh-agentএকটি বিশেষ শেল শুরু করতে প্রোগ্রামটি চালাতে হবে , তারপরে ssh-addআপনার কী / পাসফ্রেজের সংমিশ্রণটি নিবন্ধকরণ করতে হবে sshd। আরও তথ্যের জন্য এই প্রোগ্রামগুলির ম্যান পেজগুলি দেখুন।

পাসওয়ার্ড-মুক্ত সংযোগগুলি স্বয়ংক্রিয় করার জন্য একটি স্ক্রিপ্ট: ssh-no-password.sh

#!/bin/sh

# create ssh connections without giving a password

if [ $# -lt 1 ]; then
  echo Usage: $0 username@remotehost
  exit
fi
remote="$1"  # 1st command-line argument is the user@remotehost address
this=$HOST   # name of client host

# first check if we need to run ssh-keygen for generating
# $HOME/.ssh with public and private keys:
if [ ! -d $HOME/.ssh ]; then
  echo "just type RETURN for each question:" # no passphrase - unsecure!!
  # generate RSA1, RSA and DSA keys:
  echo; echo; echo
  ssh-keygen
  echo; echo; echo
  ssh-keygen -t rsa
  echo; echo; echo
  ssh-keygen -t dsa
else
  # we have $HOME/.ssh, but check that we have all types of
  # keys (RSA1, RSA, DSA):
  if [ ! -f $HOME/.ssh/identity ]; then
     # generate RSA1 keys:
     echo "just type RETURN for each question:" # no passphrase - unsecure!!
     ssh-keygen
  fi
  if [ ! -f $HOME/.ssh/id_rsa ]; then
     # generate RSA keys:
     echo "just type RETURN for each question:" # no passphrase - unsecure!!
     ssh-keygen -t rsa
  fi
  if [ ! -f $HOME/.ssh/id_rsa ]; then
     # generate DSA keys:
     echo "just type RETURN for each question:" # no passphrase - unsecure!!
     ssh-keygen -t dsa
  fi
fi


cd $HOME/.ssh

if [ ! -f config ]; then
  # make ssh try ssh -1 (RSA1 keys) first and then ssh -2 (DSA keys)
  echo "Protocol 1,2" > config
fi

# copy public keys (all three types) to the destination host:

echo; echo; echo
# create .ssh on remote host if it's not there:
ssh $remote 'if [ ! -d .ssh ]; then mkdir .ssh; fi' 
# copy RSA1 key: 
scp identity.pub ${remote}:.ssh/${this}_rsa1.pub
# copy RSA key:
#scp id_rsa.pub ${remote}:.ssh/${this}_rsa.pub
# copy DSA key:
scp id_dsa.pub ${remote}:.ssh/${this}_dsa.pub
# make authorized_keys(2) files on remote host:

echo; echo; echo
# this one copies all three keys:
#ssh $remote "cd .ssh; touch authorized_keys authorized_keys2; cat ${this}_rsa1.pub >> authorized_keys; cat ${this}_rsa.pub >> authorized_keys2; cat ${this}_dsa.pub >> authorized_keys2;"
# this one copies RSA1 and DSA keys:
ssh $remote "cd .ssh; touch authorized_keys authorized_keys2; cat ${this}_rsa1.pub >> authorized_keys; cat ${this}_dsa.pub >> authorized_keys2;"

echo; echo; echo
echo "try an ssh $remote"

: থেকে অনুলিপি http://folk.uio.no/hpl/scripting/doc/ssh-no-password.html


1

আমি তাদের জন্য একটি উত্তর যুক্ত করতে চাই যাঁরা খুঁজে পেতে পারেন তাদের পাসওয়ার্ডটি প্রবেশ করা উচিত এমনকি তারা সমস্ত উত্তর এখানে পড়েছেন কারণ আপনি পরিচয় কেবলমাত্র হ্যাঁ হিসাবে সেট করেছেন। এবং উত্তর এখানে গিট বা সার্ভারের কী হয়ে একাধিক কী পরিচালনা করতে আপনাকে অনেক সময় সাশ্রয় করতে পারে।

আমি কীটি তৈরি করার পরে এবং এটি সার্ভারে অনুলিপি করার পরে:

ssh-keygen  # change the file to /home/yourname/.ssh/something
ssh-copy-id -i ~/.ssh/something.pub lerner@192.168.20.160

আমি এটি কাজ করে না।

তারপরে আমি ~/.ssh/configক্লায়েন্টে ফাইলটি পরীক্ষা করতে গিয়েছিলাম , আমি এটি নীচে দেখেছি:

Host *
IdentitiesOnly yes

তারপরে আমি এটি উপরে যুক্ত করব:

Host somename
HostName 192.168.20.160
User lerner
IdentityFile ~/.ssh/something

আমি প্রবেশ করে লগ ইন করতে পারি ssh somename

তারপরে আপনি নিজের পছন্দের নামগুলি ব্যবহার করে একাধিক ssh কী যুক্ত করতে পারেন এবং আপনাকে কেবল কনফিগার ফাইলে উপরের চারটি লাইনের মতো সেটিংস যুক্ত করতে হবে।

আপনি পরে সার্ভারটি সংযুক্ত করার সময় হোস্টটি সেই নামটি প্রবেশ করতে চান যা আপনি প্রবেশ করতে চান; হোস্টনাম সার্ভারের আইপি; আপনি সার্ভারে লগইন করেছেন এমন ব্যবহারকারী নাম ব্যবহারকারী; এবং আইডেন্টিফাইলে হ'ল ফাইলটি যেখানে আপনি তৈরি করা কীটি সংরক্ষণ করেন।

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