আপনি কীভাবে কোনও এসএস-সার্ভারে পাবলিক কীটি অনুলিপি করবেন?


33

এখানে আমি চেষ্টা করেছি এবং আমি একটি ত্রুটি পেয়েছি:

$ cat /home/tim/.ssh/id_rsa.pub | ssh tim@just.some.other.server 'cat >> .ssh/authorized_keys'
Password: 
cat: >>: No such file or directory
cat: .ssh/authorized_keys: No such file or directory

কেন এটি দুটি পদক্ষেপে করবেন না? এটিকে অনুলিপি করুন এবং তারপরে এটি যুক্ত করুন?
ফাহিম মিঠা

@ ফাহিমমিঠা: এটি কার্যকর, ধন্যবাদ! আমি আসলে সমস্যার কারণ বুঝতে পারি। দয়া করে দেখুন আমার নতুন পোস্ট ?
টিম

-ফ প্যারামিটারের সাহায্যে আপনার ব্যক্তিগত কী প্রয়োজন হবে না, তাই আপনি কেবল কারও পাবলিক কী দিয়ে কেবল কীটি পাস করতে পারেন!
Kzqai

উত্তর:


67

ওপেনএসএইচ এটি করার জন্য একটি কমান্ড নিয়ে আসে ssh-copy-id,। আপনি কেবল এটি দূরবর্তী ঠিকানা দিন এবং এটি authorized_keysদূরবর্তী মেশিনে থাকা ফাইলটিতে আপনার সর্বজনীন কী যুক্ত করে :

$ ssh-copy-id tim@just.some.other.server

-iআপনার স্থানীয় মেশিনে আপনার সর্বজনীন কী সনাক্ত করতে আপনাকে পতাকা ব্যবহার করতে হবে :

$ ssh-copy-id -i ~/.ssh/id_rsa.pub tim@just.some.other.server

1
ধন্যবাদ! আমার আদেশ কাজ করে না কেন?
টিম

@ টিম এই উত্তরটি এটি ব্যাখ্যা করেছে; >>আপনার শেল দ্বারা পরিচালিত হয়, এবং আপনি শেলটি না দিয়ে এসএসএইচ দিয়ে কমান্ডটি চালাচ্ছেন।
এসএসএইচকে

ধন্যবাদ! (1) ssh-copy-id কাজ করে না। আমি ম্যানুয়ালি ফাইলটি রিমোটে অনুলিপি করছি এবং এর সামগ্রী যুক্ত করব, তারপরে এটি কার্যকর হয়। আমি ভাবছি কেন এমন হয়? আমি দেখেছি যে সার্ভারে আমার ডিফল্ট শেলটি কিছু স্ক্রিপ্ট, যা আমি আমার মূল পোস্টে আপডেট করি এবং এর কারণ হতে পারে। তাকাও এখানে. (২) আমি অবাক হয়েছি যে এসএসএস-কপি-আইডিটি যদি কেবল সর্বজনীন কী দূরবর্তীতে অনুলিপি করে থাকে, এটি ব্যক্তিগত এবং পাবলিক কী তৈরি করে না, তা কি করে?
টিম

1
আসুন ধরে নিই যে এসএসএইচ সার্ভারটি এমনভাবে কনফিগার করা হয়েছে যাতে এটি কেবলমাত্র প্রমাণীকরণ প্রক্রিয়া হিসাবে সর্বজনীন কী প্রমাণীকরণকে গ্রহণ করে। এই ক্ষেত্রে, ব্যবহার করে ssh-copy-idকাজ করবে না, তাই না?
আব্দুল

1
আপনি যদি ইতিমধ্যে সেই মেশিনের সাথে সংযোগ স্থাপনের জন্য অন্য কোনও কী না পান তবে @ আবডুল না। এটি কেবল
এসএসএইচের

31

আপনি সর্বদা এরকম কিছু করতে পারেন:

scp ~/.ssh/id_rsa.pub user@remote.example.com:/tmp/id_rsa.pub
ssh user@remote.example.com 
cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys

আপনি catকোনও স্থানীয় মেশিন থেকে কোনও এসএস সেশনে যেতে পারবেন কিনা তা সম্পর্কে আমি নিশ্চিত নই । প্রস্তাবিত হিসাবে কেবল এটি / টেম্পে সরান।

সম্পাদনা: এটি ঠিক তাই ssh-copy-idকরে। যেমনটি মাইকেল ড।


ধন্যবাদ! আমি ভাবছি যে যদি ssh-copy-id কেবল সরকারী কীটি দূরবর্তীতে অনুলিপি করে। এটি ব্যক্তিগত এবং সর্বজনীন কী তৈরি করে না, তাই না?
টিম

না এটি এটি তৈরি করে না। শুধু এটি যোগ করুন।
মিঃ বানর

@ মিঃমনকি হ্যাঁ, আপনি কোনও এসএস সেশনে ডেটা পাইপ করতে পারেন (থেকে catবা অন্যথায়)। আপনি যা বর্ণনা করছেন তা হ'ল পুরানো কালের উপায়; ssh-copy-idসুপারিশ করা হয় কারণ টাইপগুলি বা ফাইলগুলিকে ভুল অনুমতি দেওয়ার ঝুঁকি কম থাকে।
গিলস 'দুষ্ট হওয়া বন্ধ করুন'

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

1
অথবা আপনি শুধু পাইপ পারেন গন্তব্যে সরাসরি : cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'cat >> ~/.ssh/authorized_keys'
পাবলো এ 2

7

এই উত্তরটিতে বর্ণিত পদ্ধতিতে কীভাবে প্রশ্নে কাজ করা যায় তা বর্ণনা করা হয়।

>>পুনঃনির্দেশ অপারেটরের বিশেষ অর্থটি ব্যাখ্যা করতে আপনি দূরবর্তী কম্পিউটারে একটি শেল চালিত করতে পারেন :

ssh tim@just.some.other.server sh -c "'cat >> .ssh/authorized_keys'" < /home/tim/.ssh/id_rsa.pub

পুনঃনির্দেশ অপারেটরটি >>সাধারণত শেল দ্বারা ব্যাখ্যা করা হয়।

আপনি যখন মৃত্যুদন্ড কার্যকর করেন ssh host 'command >> file'তখন এটির নিশ্চয়তা নেই যা command >> fileশেল দ্বারা ব্যাখ্যা করা হবে। আপনার ক্ষেত্রে বিশেষ ব্যাখ্যা ছাড়াই শেলের পরিবর্তেcommand >> file মৃত্যুদন্ড কার্যকর করা হয় এবং >>একটি আর্গুমেন্ট হিসাবে কমান্ডকে দেওয়া হয়েছিল - command '>>' fileশেলের মধ্যে চলার মতোই ।

এসএসএইচ (ওপেনএসএসএইচ_৯.৯) এর কয়েকটি সংস্করণ স্বয়ংক্রিয়ভাবে রিমোট সার্ভারে শেলটি আহ্বান করবে এবং কমান্ড (গুলি) এ প্রেরণ করবে যখন তারা টোকেনগুলি শেলের মতো ব্যাখ্যা করার জন্য সনাক্ত করবে ; > >>ইত্যাদি ইত্যাদি


3

opensshজোগান ssh-copy-id। ক্রমটি হ'ল:

  • একটি শালীন 4 কে কী তৈরি করুন

    ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa4k
    
  • আপনার এসএসএল-এজেন্টটি শুরু করুন এবং SSH_AGENT_PIDইত্যাদির মতো তথ্য চুষান

    ssh-agent -s > ~/mysshagent
    source ~/mysshagent
    rm ~/mysshagent
    
  • এখন আপনার এসএসএইচ এজেন্টে কীগুলি লোড করা শুরু করুন

    ssh-add ~/.ssh/id_rsa4k
    
  • এটি লোড হয়েছে কিনা তা পরীক্ষা করুন

    ssh-add -l
    ssh-add -L
    

    এটি আপনাকে ssh- এজেন্টে কী তা দেখায়

  • এখন আসলে রিমোট সিস্টেমে এসএসএইচ

    ssh username@remotehost.network
    
  • এখন আপনি কোনও যুক্তি ছাড়াই ssh-copy-id চালাতে পারবেন:

    ssh-copy-id
    

    এটি ~/.ssh/authorized_keysssh-এজেন্ট থেকে প্রয়োজনীয় বুনিয়াদি তথ্য তৈরি করে এবং পূরণ করে ।


বিটিডাব্লু , আমি github.com/centic9/generate-and-send-ssh-key এ একটি ছোট স্ক্রিপ্ট তৈরি করেছি যা এই ধাপগুলির বেশিরভাগ একযোগে চালায় এবং অতিরিক্তভাবে ফাইল / ডিরেক্টরি অনুমতিগুলি নিশ্চিত করে যা সাধারণত আমার মাথা ব্যথার কারণ হয়ে
দাঁড়ায়

পাসওয়ার্ড লগইন অক্ষম থাকাকালীন এটি ব্যবহারের একটি দুর্দান্ত পদ্ধতি। পূর্বের কী দিয়ে প্রমাণীকরণের সময় এটি একটি নতুন কী যুক্ত করার অনুমতি দেয়।
মাউন্টেনএক্স

1

২২ টির তুলনায় অন্য কোনও বন্দরটি বেছে নেওয়ার সময় আমার ssh-copy-id নিয়ে সমস্যা হয়েছিল ... সুতরাং এখানে অন্য এসএস-পোর্ট (যেমন el 7572) সহ আমার অনন্যার রয়েছে:

ssh yourServer.dom -p7572 "mkdir .ssh; chmod 700 .ssh; umask 177; sh -c 'cat >> .ssh/authorized_keys'" < .ssh/id_rsa.pub

0

প্রকৃতপক্ষেthe ssh-copy-id কমান্ড ঠিক এই আছে (থেকে openssh-clientপ্যাকেজ):

ssh-copy-id user@host

দ্রষ্টব্য: এর
hostঅর্থ আইপি ঠিকানা বা ডোমেন


আমিও কিছু যোগ করতে চাই অতিরিক্ত তথ্য এই

1) আমরা গন্তব্য সার্ভারে এসএসএইচের জন্য একটি আলাদা পোর্ট নির্দিষ্ট করতে পারি :

ssh-copy-id "-p 8127 user@host"

নোট: বন্দর সামনে থাকতে হবে অথবা এটি সমাধান করবে না।
user@host

সূত্র

2) আমরা সর্বজনীন কী সহ একটি ফাইল নির্দিষ্ট করতে পারি :

ssh-copy-id -i ~/.ssh/id_rsa.pub user@host

নোট: বিকল্প আমাদের যে ফাইলটি সর্বজনীন কী থাকা নামের উপযুক্ত অবস্থান নির্দেশ করতে পারবেন।
-i

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

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