অন্য মেশিনে ssh কী অনুলিপি করার সহজ উপায়?


342

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

আমি কীটি অনুলিপি করার সবচেয়ে সহজ এবং প্রস্তাবিত উপায়টি খুঁজছি, আশা করি উবুন্টু এসএস প্যাকেজের কোনও সুবিধামত র‌্যাপার রয়েছে?

পাসওয়ার্ড লগইন কীভাবে বন্ধ করবেন সে সম্পর্কে আমি ইতিমধ্যে সচেতন ।


উত্তর:


463

ssh-copy-idকমান্ড (মধ্যে OpenSSH ক্লায়েন্ট প্যাকেজ এবং ডিফল্ট ভাবে ইনস্টল করা আছে) ঠিক এই আছে:

ssh-copy-id user@hostname.example.com

আপনার ডিফল্ট পরিচয়ের সর্বজনীন কী ( -i identity_fileঅন্যান্য পরিচয় ব্যবহারের জন্য) দূরবর্তী হোস্টে অনুলিপি করে ।

ডিফল্ট পরিচয়টি আপনার "স্ট্যান্ডার্ড" ssh কী। এটা আপনার দুটি ফাইল (সরকারি ও বেসরকারি চাবি) নিয়ে গঠিত ~/.sshডিরেক্টরি, সাধারণত নামে identity, id_rsa, id_dsa, id_ecdsaবা id_ed25519(এবং সঙ্গে একই .pub), কী ধরনের উপর নির্ভর করে। যদি আপনি একাধিক ssh কী তৈরি না করে থাকেন তবে আপনাকে পরিচয় নির্দিষ্ট করার বিষয়ে চিন্তা করতে হবে না, ssh-copy-id কেবল এটি স্বয়ংক্রিয়ভাবে বেছে নেবে।

যদি আপনার কোনও পরিচয় না থাকে তবে আপনি এই সরঞ্জামটি দিয়ে একটি তৈরি করতে পারেন ssh-keygen

তদ্ব্যতীত, সার্ভারটি যদি ডিফল্ট ( 22) থেকে আলাদা কোনও পোর্ট ব্যবহার করে তবে আপনার এইভাবে উত্সের চিহ্নগুলি ( উত্স ) ব্যবহার করা উচিত :

ssh-copy-id "user@hostname.example.com -p <port-number>"

1
ডিফল্ট পরিচয় কী?
অক্সভিভি

17
বিভিন্ন বন্দরের জন্য এটি ব্যবহার করুন:ssh-copy-id "user@host -p 6842"
jibon57

5
যদি আপনি যে রিমোট সার্ভারটি অনুলিপি করছেন তা পাসওয়ার্ডের অনুরোধ না দেয় এবং এসএসএইচ অ্যাক্সেসের জন্য সংরক্ষণ করে মূলত লকড থাকে?
কাইল

10
ম্যাক আপনি করতে পারেন brew install ssh-copy-idএবং তারপর কমান্ড চালাতে পারেন ।
অবিশাই

1
@ মার্সেলস্টিবার্গ দয়া করে -i প্রোফাইল অন্তর্ভুক্ত করার জন্য উত্তর আপডেট করুন; লোকদের সম্ভবত 1 টিরও বেশি কী রয়েছে এবং সেগুলি সবগুলি ধাক্কা দেয়, অথবা মন্তব্যগুলিতে -i বিকল্পের সন্ধান করতে হয়
নিক

129

আমি মার্সেল থেকে উত্তর পছন্দ। আমি এই আদেশ জানি না। ওরাকল ওয়েবসাইটে আমি যা পেয়েছিলাম তা আমি সর্বদা ব্যবহার করছি :

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'cat >> .ssh/authorized_keys && echo "Key copied"'

আমি এখনও এটি এখানে পোস্ট করতে ভেবেছিলাম, কারণ এটি শক্তির সাহায্যে শেল কোডে কী অর্জন করা যায় তার একটি ভাল চিত্রণ ssh। তবে ssh-copy-idসঠিকভাবে এটি করার জন্য অবশ্যই এটি ব্যবহার করা নিরাপদ উপায়!

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

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'umask 0077; mkdir -p .ssh; cat >> .ssh/authorized_keys && echo "Key copied"'

2
এই সঠিক আদেশগুলি ম্যাক থেকেও কাজ করে
মিহাই পি।

এটি বেশিরভাগ শেল সহ কোনও ইউনিক্সের অধীনে কাজ করা উচিত। ফোল্ডারটি .sshদূরবর্তী অংশে উপস্থিত না থাকলে আমি আপডেট কমান্ড দিয়ে পোস্টটি আপডেট করেছি ।
হিউজেনস

1
catপ্রয়োজন নেই - একটি স্বাভাবিক ইনপুট ফেরৎ যথেষ্ট, যেমন< ~/.ssh/id_rsa.pub | ssh ...
maxschlepzig

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

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

31

গ্রাফিকাল পদ্ধতি

  1. অ্যাপ্লিকেশনগুলি খুলুন ▸ পাসওয়ার্ড এবং কীগুলিআমার ব্যক্তিগত কী
  2. আপনার কী নির্বাচন করুন এবং তারপরে সুরক্ষিত শেলের জন্য রিমোটকী কনফিগার করুন ক্লিক করুন ।

এসএসএইচ সংযোগের জন্য কম্পিউটার সেট আপ করুন


আমার মেনুতে "পাসওয়ার্ড এবং এনক্রিপশন কী" নেই।
জোর্হে কাস্ত্রো

আপনি উবুন্টু মুক্তি কি ব্যবহার করছেন? উবুন্টু 10.04 এলটিএসে এটি ডিফল্টরূপে পাওয়া উচিত।
ündrük

১০.১০, সবেমাত্র ট্যাগ যুক্ত করেছে। আপনার ডেস্কটপ ভিত্তিক উত্তরের জন্য যদিও +1, মার্সেলের উত্তর আমি যা খুঁজছি তা হল!
জর্জি কাস্ত্রো

4
এই প্রোগ্রামটি হল seahorse
গিলস

1
আমি মনে করি এই অ্যাপ্লিকেশনটি 10.10-এ সিস্টেম-> পছন্দসমূহ মেনুতে রয়েছে (এখনই এটি পরীক্ষা করতে পারে না, আমি 10.04 এ আছি)
Huygens

18

উবুন্টুতে আপনি লঞ্চপ্যাড থেকে আপনার কীগুলি আনতে পারেন:

ssh-import-id [launchpad account name]

বিশদ :

  1. আপনার একটি লঞ্চপ্যাড অ্যাকাউন্ট প্রয়োজন তাই লগইন করুন বা একটি অ্যাকাউন্ট তৈরি করুন
  2. লগ ইন করার পরে, এসএসএইচ কীগুলির পাশের বোতামটি ক্লিক করুন :
  3. আপনার সর্বজনীন কী ফাইলের বিষয়বস্তু সেই ক্ষেত্রটিতে আটকান (মন্তব্য সহ)। এ জাতীয় কীটি দেখতে:

    ssh-rsa AAAAB3Nza .... UyDOFDqJp lekensteyn
    

    এখানে, এটি ssh-rsaনির্দেশ করে যে কীটি একটি আরএসএ কী, AAAAB3Nza .... UyDOFDqJpআসল কী এবং lekensteynমন্তব্য।

  4. আমদানি সর্বজনীন কী টিপে কীটি সংরক্ষণ করুন
  5. যদি সবকিছু ঠিকঠাক হয় তবে আপনার কীগুলি এখন এসএসএইচ কীগুলির অধীনে তালিকাবদ্ধ করা উচিত :

প্যাকেজটি ssh-import-idমেশিনে ইনস্টল করা প্রয়োজন যা দূরবর্তী থেকে অ্যাক্সেস করা দরকার। এই প্যাকেজটি প্যাকেজটির সাথে একত্রে ইনস্টল করা হ'ল openssh-serverএটির জন্য প্রস্তাবিত প্যাকেজ openssh-serverssh-import-idএটি ক্লায়েন্ট মেশিনে ইনস্টল করা হয়েছে তা নিশ্চিত করার পরে , চালনা করুন:

ssh-import-id [launchpad account name]

এটি এইচটিটিপিএসের মাধ্যমে লঞ্চপ্যাড সার্ভারগুলি থেকে সর্বজনীন কী ডাউনলোড করবে যা আপনাকে এমআইটিএম আক্রমণ থেকে রক্ষা করবে।

উবুন্টু লুসিড এবং এর আগে আপনি এর মাধ্যমে এটি সম্পাদন করতে পারেন:

wget https://launchpad.net/~[lp acount name]/+sshkeys -O - >> ~/.ssh/authorized_keys && echo >> ~/.ssh/authorized_keys

echoকমান্ড SSH- কি সঙ্গে সঙ্গতিপূর্ণ পর একটি অতিরিক্ত সম্পর্কে newline পেতে প্রয়োজন হয়।


14

কাস্টম পোর্ট জন্য

ssh-copy-id -i "user@hostname.example.com -p2222"

-i ডিফল্টগুলি ~ / .ssh / id_rsa.pub এ স্যুইচ করুন, আপনি যদি অন্য কী চান তবে -i এর পরে কীটির পথটি রাখুন

সতর্কতা: আপনি -i না লিখলে এটি all / .ssh- এ পাওয়া সমস্ত কীগুলি অনুলিপি করবে


1
আপনি কি সেই সতর্কতা সম্পর্কে নিশ্চিত? "-i পরিচয়_ফায়াল - পরিচয়_ফায়লে থাকা কী (গুলি) ব্যবহার করুন (ssh-add (1) এর মাধ্যমে বা ডিফল্ট_আইডি_ফায়ালে সনাক্তকরণের চেয়ে) the বাদ দেওয়া হয়, ডিফল্ট_আইডি_ফাইল ব্যবহৃত হয় ""
ইউশা আলেয়াউব

0

ssh-copy-idঠিক যে করে। আমি নিশ্চিত নই যে এখানে অন্যান্য উত্তরগুলির মধ্যে কেন কিছু সঠিক তথ্য যুক্ত করে। সহায়তা নিম্নলিখিতটি দেখায়:

~$ ssh-copy-id -h
Usage: /usr/bin/ssh-copy-id [-h|-?|-f|-n] [-i [identity_file]] [-p port] [[-o <ssh -o options>] ...] [user@]hostname
    -f: force mode -- copy keys without trying to check if they are already installed
    -n: dry run    -- no keys are actually copied
    -h|-?: print this help

আমি কেবল CentOS 7.6 সার্ভার সহ উবুন্টু 18.04 ক্লায়েন্টটিতে নিম্নলিখিতটি চেষ্টা করেছি এবং এটি একটি কবজির মতো কাজ করেছে। উদাহরণটি একটি কাস্টম পোর্ট ব্যবহার করে 2222এবং এখানে একটি পাবলিক কী নির্দিষ্ট করে shows~/.ssh/path-to-rsa.pub

$ ssh-copy-id -i ~/.ssh/path-to-rsa.pub -p 2222 myusername@hostname.tld

কমান্ডটি চালানোর আগে, আমি আসলে -nশেষে একটি শুকনো রান করতে সুইচটি ব্যবহার করি যা নিশ্চিত করে যে কমান্ডটি ইচ্ছা মতো কাজ করবে। একবার এটি নিশ্চিত হয়ে গেলে আমি উপরের মত আবার কমান্ডটি চালিত করেছিলাম, -nসুইচ ছাড়াই ।

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