অ-ডিফল্ট পরিচয় ফাইলের অবস্থানের সাথে পাসওয়ার্ড ছাড়াই এসএসএইচ


16

একটি স্টার্টআপ স্ক্রিপ্টের অংশ হিসাবে আমাকে কয়েকটি জিনোম-টার্মিনাল উইন্ডো স্বয়ংক্রিয়ভাবে খুলতে হবে, সেই টার্মিনালের একটি স্বয়ংক্রিয়ভাবে প্রেরণ:

ssh user@192.168.1.3

এর সীমাবদ্ধতা হ'ল এসএসএইচ সংযোগটি সম্পূর্ণ করার জন্য আমার এখনও একটি পাসওয়ার্ড টাইপ করতে হবে।

আমি যা করতে চাই তা হ'ল আমার স্ক্রিপ্টটি কমান্ড আরম্ভ করার এবং সংযোগটি সম্পূর্ণ করার জন্য। সেই পরিমাণে, আমি এখানে গৃহীত উত্তরে বর্ণিত নির্দেশাবলী অনুসরণ করার চেষ্টা করেছি ।

আমি যে সিস্টেম থেকে সংযোগ করতে চাই তা থেকে দৌড়েছি:

ssh-keygen
Enter file in which to save the key: /home/user/ssh/keys/server1key

এরপরে এটি আমাকে একটি পাসফ্রেজ প্রবেশ করার অনুরোধ জানায়। আমি এটি খালি রেখে দিয়েছি, কারণ এটি কী হবে তা সম্পর্কে আমি নিশ্চিত ছিলাম না, তাই আমি ধরে নিয়েছিলাম যে প্রতিবারই আমি এটি ব্যবহার করব বলার জন্য পাসফ্রেজ দিয়ে এটি আনলক করা দরকার।

উপরে লিঙ্কিত নির্দেশাবলী অবিরত করে আমি পরে দৌড়েছি এবং নিম্নলিখিতগুলি পেয়েছি:

ssh-copy-id user@IP
ERROR: No identities found

তাত্ক্ষণিক অনুসন্ধানে জানা গেছে যে আমি কীটির অবস্থান নির্দিষ্ট করতে হয়েছিল, কারণ এটি ডিফল্ট সংরক্ষণের জায়গায় নেই, তাই আমি স্থির করেছিলাম:

ssh-copy-id -i /home/user/ssh/keys/server1key.pub user@192.168.1.3

সার্ভারের পাসওয়ার্ড জিজ্ঞাসা করার পরে, এটি সফলভাবে কীটি যুক্ত করেছে। তবে, "ssh ব্যবহারকারী @ আইপি" দিয়ে লগ ইন করার চেষ্টা করার পরেও আমাকে পাসওয়ার্ডের জন্য অনুরোধ করা হয়েছিল।

আমি যতদূর সচেতন, আমি লিঙ্কযুক্ত নির্দেশগুলি সঠিকভাবে অনুসরণ করেছি, সুতরাং হয় আমি কিছু অনুপস্থিত বা সম্ভবত একটি বিদ্যমান কনফিগারেশন আমাকে এটি কাজ করার জন্য বাধা দিচ্ছে?

উভয় সিস্টেমই 18.04 এবং ওপেনশ ব্যবহার করে।


সুতরাং এসএসএইচ কমান্ড প্রেরণের সময় আমাকে .pub ফাইলের অবস্থান নির্দিষ্ট করতে হবে?
হাইগারান

আমার ফাইলগুলি সংগঠিত করার জন্য আমি কিছুটা আলাদাভাবে পেয়েছি, সুতরাং অ-ডিফল্ট অবস্থানগুলি, তবে আপনি ছেলেরা যথেষ্ট সাহায্য করেছেন helped ধন্যবাদ। আমি এটি গ্রহণ করতে পারি একটি উত্তর নির্দ্বিধায়।
হাইগারান

উত্তর:


35

এটি একই কারণে ssh-copy-idব্যর্থ হয়েছিল যা প্রথমবার ব্যর্থ হয়েছিল - যেমন আপনি পরিচয় ফাইলের জন্য একটি ডিফল্ট অবস্থান চয়ন করেছেন।

-i /home/user/ssh/keys/server1keyআপনার sshকমান্ডে যুক্ত করে আপনি এটি একইভাবে সমাধান করতে পারেন - নোট করুন যে ক্লায়েন্টের পক্ষে ব্যক্তিগত কী ফাইলের অবস্থান প্রয়োজন ।

থেকে man ssh

 -i identity_file
         Selects a file from which the identity (private key) for public
         key authentication is read.  The default is ~/.ssh/identity for
         protocol version 1, and ~/.ssh/id_dsa, ~/.ssh/id_ecdsa,
         ~/.ssh/id_ed25519 and ~/.ssh/id_rsa for protocol version 2.

বিকল্পভাবে, আপনি ~/.ssh/configহোস্টের জন্য লাইনগুলি বরাবর একটি ফাইল এন্ট্রি তৈরি করতে ইচ্ছুক হতে পারেন

Host            somename
Hostname        192.168.1.3
User            user
IdentityFile    /home/user/ssh/keys/server1key

1
আমি সবসময় ধরে নিয়েছিলাম যে কনফিগারেশনের ফাইলের ইনডেন্টেশন দরকার - আমি দেখি যে এটি ঘটেনি। Intruiging।
বোরিস দ্য স্পাইডারটি

ওপেনএসএইচএইচ ব্যবহার করা যে কারওর একটি হওয়া উচিত ~/.ssh/config, অন্যথায় ওপেনএসএইচ সিস্টেম বিস্তৃত ডিফল্ট ব্যবহার করে /etc/ssh/ssh_config। যদি কারও পক্ষে এটি সহায়ক মনে হয়, আমি ব্যবহারকারীদের জন্য যারা ssh_config পৃষ্ঠাটি পড়ার সময় না পেয়ে পারে তার জন্য প্রাথমিক বিন্দু হিসাবে কিছুক্ষণ আগে আমার গিটহাবের কাছে একটি প্রাক-নির্মিত ssh_config আপলোড করেছি
JW0914

@ জেডব্লিউ ০৯১৪ এটি কেবলমাত্র অর্ধেক সত্য: স্বতন্ত্র মানগুলি ~/.ssh/configবিশ্বব্যাপী সেগুলি ওভাররাইড করে দেবে ssh_config, তবে কেবল ফাইলটি থাকা সিস্টেম ব্যতীত কনফিগারেশন অক্ষম করবে না।
সেবাস্তিয়ান স্টার্ক

@ সেবাস্তিয়ান স্টার্ক সম্ভবত আপনি আমার মন্তব্যটি ভুলভাবে লিখেছেন, কারণ আমি কখনও বলিনি যে এটি সিস্টেমের ব্যাপক কনফিগারেশনটিকে অক্ষম করবে। আমি যা বলেছি তা 100% সত্যই সঠিক ছিল।
JW0914

2

ssh-copy-idব্যর্থ হওয়ার আরেকটি কারণ হ'ল কীটি এসএসএইচ এজেন্টে যুক্ত করা হয়নি।

প্রথমে চেক করুন এবং ssh-agentচলছে কিনা তা শুরু করুন :

eval "$(ssh-agent -s)"

আপনি যদি প্রসেস আইডি পেয়ে থাকেন তবে আপনি আপনার কীটি যুক্ত করতে পারেন:

ssh-add -k /home/user/ssh/keys/server1key

আপনার সাথে -kকীচেইনে কী যুক্ত করুন।

কীগুলি এর সাথে যুক্ত করা হয়েছে কিনা তা পরীক্ষা করুন:

ssh-add -l

ssh-copy-id এখন কাজ করা উচিত।


-1

আশা করি এটি আপনার পক্ষে কাজ করবে .. "sshpass -p yourpassword" এটি স্বয়ংক্রিয়ভাবে দূরবর্তী হোস্টে লগইন হবে।

[রুট @ লোকালহোস্ট .ssh] # এসএসপাস-পি পাসওয়ার্ড 123 এসএসএস-এল রুট লোকালহোস্ট


-1

কেবলমাত্র দুটি কমান্ড কার্যকর করুন:

ssh-keygen
ssh-copy-id

দীর্ঘ উত্তর:

user@ip:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): temp_file
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in stemp.
Your public key has been saved in stemp.pub.
The key fingerprint is:
SHA256:5**M user@ip
The key's randomart image is:
+---[RSA 2048]----+
|  ...            |
| ...             |
| ..              |
| ..+.    o .     |
|                 |
|    B            |
|                 |
|=      *         |
|=+   o .         |
+----[SHA256]-----+

এবং তারপর:

user@ip:~$ ssh-copy-id -i ~/.ssh/id_rsa.pub ipDestination -p portDest
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.