একটি ব্যক্তিগত কী ব্যবহার করে কীভাবে দূরবর্তী সার্ভারে এসএসএস করবেন?


77

আমার দুটি সার্ভার রয়েছে। উভয় সার্ভার সেন্টোস 5.6 এ রয়েছে। আমার কাছে থাকা একটি ব্যক্তিগত কী (ওপেনএসএসএইচ এসএসএইচ -2 ব্যক্তিগত কী) ব্যবহার করে আমি সার্ভার 1 থেকে সার্ভার 2-তে এসএসএইচ করতে চাই।

আমি কীভাবে এটি ইউনিক্সের মাধ্যমে করব তা জানি না। তবে পুট্টি ব্যবহার করে আমি উইন্ডোজগুলিতে যা করেছি তা হ'ল আমার ওপেনএসএইচ প্রাইভেট কীটি পুট্টি-জেনকে খাওয়ানো এবং পিপিকে ফর্ম্যাটে একটি ব্যক্তিগত কী তৈরি করা gene

যাইহোক, আমি সার্ভার 1 থেকে বাশ স্ক্রিপ্ট তৈরি করব যা এসএসএইচ মাধ্যমে সার্ভার 2-তে কিছু কমান্ড কার্যকর করবে।

সার্ভার 1 থেকে আমার ব্যক্তিগত কী ফাইলটি ব্যবহার করে আমি কীভাবে সার্ভার 2 তে এসএসএইচ করব?


1
অনেকগুলি লিনাক্স এবং ইউনিক্স সিস্টেমে এটি ব্যবহার করে করা যেতে পারেssh-copy-id user@machine
পল টমলিন

উত্তর:


66

আপনার আপনার এসএসএইচ পাবলিক কী প্রয়োজন এবং আপনার এসএসএইচ প্রাইভেট কী প্রয়োজন। কীগুলি দিয়ে তৈরি করা যায় ssh_keygen। ব্যক্তিগত কীটি অবশ্যই সার্ভার 1 এ রাখতে হবে এবং সর্বজনীন কী অবশ্যই সার্ভার 2 এ সংরক্ষণ করতে হবে।

এটি সম্পূর্ণরূপে ওপেনশপের ম্যানপেজে বর্ণিত হয়েছে, তাই আমি এটির প্রচুর উদ্ধৃতি দেব। আপনার 'প্রমাণীকরণ' বিভাগটি পড়া উচিত। এছাড়াও ওপেনএসএসএইচ ম্যানুয়ালটি সত্যই সহায়ক হওয়া উচিত: http://www.openssh.org/manual.html

দয়া করে ssh সহ সাবধান হন কারণ এটি আপনার সার্ভারের সুরক্ষাকে প্রভাবিত করে।

থেকে man ssh:

 ~/.ssh/identity
 ~/.ssh/id_dsa
 ~/.ssh/id_rsa
     Contains the private key for authentication.  These files contain
     sensitive data and should be readable by the user but not acces-
     sible by others (read/write/execute).  ssh will simply ignore a
     private key file if it is accessible by others.  It is possible
     to specify a passphrase when generating the key which will be
     used to encrypt the sensitive part of this file using 3DES.

 ~/.ssh/identity.pub
 ~/.ssh/id_dsa.pub
 ~/.ssh/id_rsa.pub
     Contains the public key for authentication.  These files are not
     sensitive and can (but need not) be readable by anyone.

এর অর্থ আপনি আপনার প্রাইভেট কীটি আপনার ডিরেক্টরি ডিরেক্টরিতে .ssh এ সঞ্চয় করতে পারেন। আর একটি সম্ভাবনা হ'ল -iএকটি বিশেষ পরিচয় ফাইল ব্যবহার করার জন্য প্যারামিটার সুইচের মাধ্যমে ssh বলা । এছাড়াও থেকে man ssh:

 -i identity_file
     Selects a file from which the identity (private key) for RSA or
     DSA authentication is read.  The default is ~/.ssh/identity for
     protocol version 1, and ~/.ssh/id_rsa and ~/.ssh/id_dsa for pro-
     tocol version 2.  Identity files may also be specified on a per-
     host basis in the configuration file.  It is possible to have
     multiple -i options (and multiple identities specified in config-
     uration files).

এটি ব্যক্তিগত কী জন্য key এখন আপনাকে সার্ভার ২ এ আপনার সর্বজনীন কী প্রবর্তন করতে হবে Again এর থেকে আবার একটি উদ্ধৃতি man ssh:

  ~/.ssh/authorized_keys
         Lists the public keys (RSA/DSA) that can be used for logging in
         as this user.  The format of this file is described in the
         sshd(8) manual page.  This file is not highly sensitive, but the
         recommended permissions are read/write for the user, and not
         accessible by others.

অ্যাক্সেস করার সহজতম উপায় হ'ল ফাইলটি সার্ভার 2 এ অনুলিপি করা এবং এটি অনুমোদিত_কাইজ ফাইলটিতে যুক্ত করা:

scp -p your_pub_key.pub user@host:
ssh user@host
host$ cat id_dsa.pub >> ~/.ssh/authorized_keys

Ssh ডিমনটির জন্য অবশ্যই পাবলিক কী মাধ্যমে অনুমোদনের অনুমতি দেওয়া উচিত, দেখুন man ssh_config। সাধারণত কনফিগার ফাইলে নিম্নলিখিত বিবৃতি যুক্ত করে এটি করা যেতে পারে:

PubkeyAuthentication yes

10
হাই চেষ্টা করে দেখার জন্য আপনাকে ধন্যবাদ তবে আমার কেবল এটির প্রয়োজন। ssh -i keyfileধন্যবাদ!
আইভান মনসিলার

8
কী, সার্ভারে এটি ইনস্টল করা সবচেয়ে সহজ এবং প্রস্তাবিত উপায় উৎপাদিত পর সাথে আছেন ssh-copy-id: ssh-copy-id -i ~/.ssh/foo.id_rsa remote.example.com
গিলস

5
আপনি যে ssh-addকম্পিউটার থেকে সংযোগ করছেন সে কম্পিউটারে কী তৈরি করার পরে আপনাকে চালনার দরকার তা কীভাবে প্রত্যেকে ভুলে যায় তা আকর্ষণীয় interesting এ কারণেই বেশিরভাগ মানুষের মাথা ব্যথা হয়।
লুকা

3
গুরুত্বপূর্ণ দ্রষ্টব্য: ক্লায়েন্টের অনেকগুলি ব্যক্তিগত কী থাকতে পারে এবং তাদের ব্যক্তিগত। / .Ssh / কনফিগারেশন ফাইলে একটি ইচ্ছামতী নামের উপর ভিত্তি করে নির্বাচন করা যেতে পারে যেখানে হোস্ট = যথেচ্ছ নাম দেয়, হোস্টনাম কোনও নাম বা আইপি ঠিকানা দেয়, পোর্ট = টার্গেট পোর্ট, ব্যবহারকারী হ'ল গন্তব্য ব্যবহারকারী নাম এবং ইন্টেনটিফিল = প্রাইভেট কী ফাইলটিতে পয়েন্ট করে। এই বৈশিষ্ট্যটি সেটটি প্রায়শই উপেক্ষা করা হয় এবং এটি অনেকগুলি কনফিগারেশন সমস্যার সমাধান, যেমন একাধিক কী-জোড়া থাকা যা অন্যথায় নাম-জায়গাতে সংঘর্ষ হয়।
রিচার্ড টি

1
যখন আমি এসএসএইচ দিয়ে চেষ্টা করি এবং এর সাথে সংযোগ করি তখন আমি কীটি তৈরি করেছি, স্থানীয়ভাবে ব্যবহার করেছি এবং রিমোট সার্ভারে অনুমোদিত কী হিসাবে যুক্ত $ ssh -i ~/.ssh/id_rsa myuser@ssh.myhost.comহয়েছি get myuser@ssh.myhost.com: Permission denied (publickey).ssh-add
অ্যারন ফ্র্যাঙ্ক

21

আমি এখানে আপনার কী যুক্ত করতে -i বিকল্প ব্যবহার করেছি।

আপনি আর। 1, .sh ফাইল সহ আরগ 2 পাস করতে চান, কেবল এটি .sh ফাইলের পরে পাস করুন এবং এটি পৃথক করতে একটি ব্যবহারের স্থান ব্যবহার করুন।

ssh -i home/avr/new.pem ar@231.221.54.8 "/var/www/beta/betatolive.sh mmin 30"


1
সঠিক অনুমতি সেট করতে ভুলবেন না:chmod 600 home/avr/new.pem
ব্রায়ান হক

16

আপনার প্রথম যে কাজটি করতে হবে তা হ'ল কীগুলি উত্পন্ন করার জন্য আপনি কীজেন কমান্ডটি চালিয়েছেন তা নিশ্চিত করুন:

ssh-keygen -t rsa

তারপরে এই কমান্ডটি আপনার সার্ভারের নামের সাথে মেলে এটি সংশোধন করে দূরবর্তী সার্ভারে কীটি চাপতে ব্যবহার করুন।

cat ~/.ssh/id_rsa.pub | ssh user@hostname 'cat >> .ssh/authorized_keys'

6
এর ssh-copy-id user@hostnameপরিবর্তে কল করা যাক
andrej

7

id_[rd]sa.pubআপনি যে ব্যবহারকারী নামটি ব্যবহার করতে চান তার জন্য আপনার উত্স মেশিনের জন্য সর্বজনীন কী ( ) আপনি যেখানে ছিটকে যাচ্ছেন) ~/.ssh/authorized_keysগন্তব্য সার্ভারের ফাইলে যুক্ত করুন। আপনি যদি সর্বজনীন কী হারিয়ে ফেলে থাকেন তবে আপনি এটির সাথে একটি নতুন তৈরি করতে চাইবেন ssh-keygen। এর জন্য ডিফল্ট আর্গুমেন্টগুলি ব্যবহার করা বেশিরভাগ কারণে ঠিক হওয়া উচিত। আপনার যদি আরও বিশদ নির্দেশাবলীর প্রয়োজন হয় তবে এমন হাজার হাজার টিউটোরিয়াল রয়েছে যা আপনি গুগল করতে পারেন।


4

ssh-copy-id - একটি দূরবর্তী মেশিনে লগইন অনুমোদনের জন্য স্থানীয়ভাবে উপলব্ধ কীগুলি ব্যবহার করুন

ssh-copy-idসার্ভার 1 এ ব্যবহার করে, ধরে নিয়েই আপনার কী কী রয়েছে (এর সাথে উত্পন্ন ssh-keygen):

ssh-copy-id -i ~/.ssh/id_rsa user@server2_hostname

এখন আপনার প্রাইভেট কীটি ব্যবহার করে সার্ভার 2-এ ssh করতে সক্ষম হওয়া উচিত

ssh -i ~/.ssh/id_rsa user@server2_hostname

প্রকৃতপক্ষে, আপনি যদি cat ~/.ssh/authorized_keysসার্ভার 2 এ চেক করেন তবে আপনি দেখতে পাবে যে পাবলিক কী আপনার জন্য সংযুক্ত রয়েছে।

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