বরং টাইপ চেয়ে আপনার পাসওয়ার্ড একাধিক বার আপনি ব্যবহার করতে পারেন psshএবং তার -Aএকবার এটি জন্য প্রম্পট স্যুইচ করুন, এবং তারপর একটি তালিকাতে সকল সার্ভারে পাসওয়ার্ড ভোজন।
দ্রষ্টব্য: এই পদ্ধতিটি ব্যবহার আপনাকে ব্যবহার করার অনুমতি দেয় না ssh-copy-id, সুতরাং আপনার দূরবর্তী অ্যাকাউন্টের ফাইলে আপনার এসএসএইচ পাব কী ফাইল সংযুক্ত করার জন্য আপনার নিজের পদ্ধতিটি রোল করতে ~/.ssh/authorized_keysহবে।
উদাহরণ
এখানে একটি উদাহরণ যা কাজটি করে:
$ cat ~/.ssh/my_id_rsa.pub \
| pssh -h ips.txt -l remoteuser -A -I -i \
' \
umask 077; \
mkdir -p ~/.ssh; \
afile=~/.ssh/authorized_keys; \
cat - >> $afile; \
sort -u $afile -o $afile \
'
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password:
[1] 23:03:58 [SUCCESS] 10.252.1.1
[2] 23:03:58 [SUCCESS] 10.252.1.2
[3] 23:03:58 [SUCCESS] 10.252.1.3
[4] 23:03:58 [SUCCESS] 10.252.1.10
[5] 23:03:58 [SUCCESS] 10.252.1.5
[6] 23:03:58 [SUCCESS] 10.252.1.6
[7] 23:03:58 [SUCCESS] 10.252.1.9
[8] 23:03:59 [SUCCESS] 10.252.1.8
[9] 23:03:59 [SUCCESS] 10.252.1.7
উপরের লিপিটি সাধারণত এর মতো কাঠামোযুক্ত:
$ cat <pubkey> | pssh -h <ip file> -l <remote user> -A -I -i '...cmds to add pubkey...'
উচ্চ স্তরের psshবিশদ
cat <pubkey> সর্বজনীন কী ফাইলটি আউটপুট করে pssh
pssh-ISTDIN এর মাধ্যমে ডেটা নিবিষ্ট করতে স্যুইচ ব্যবহার করে
-l <remote user> দূরবর্তী সার্ভারের অ্যাকাউন্ট (আমরা ধরে নিচ্ছি যে আইপি ফাইলের সার্ভারগুলিতে আপনার একই ব্যবহারকারীর নাম রয়েছে)
-Aবলে psshআপনার পাসওয়ার্ড চাইতে এবং তারপর সব সার্ভারের জন্য পুনরায় এটিকে ব্যবহার এটি সাথে সংযোগ করে থেকে
-ipsshকোনও আউটপুট এটি ফাইলগুলিতে সংরক্ষণের পরিবর্তে STDOUT এ প্রেরণ করতে বলে (এটির পূর্বনির্ধারিত আচরণ)
'...cmds to add pubkey...'- এটি যা ঘটছে তার মধ্যে সবচেয়ে জটিল অংশ, তাই আমি এটিকে নিজেই ভেঙে দেব (নীচে দেখুন)
কমান্ডগুলি দূরবর্তী সার্ভারে চলছে
এগুলি হ'ল আদেশগুলি যা psshপ্রতিটি সার্ভারে চলবে:
' \
umask 077; \
mkdir -p ~/.ssh; \
afile=~/.ssh/authorized_keys; \
cat - >> $afile; \
sort -u $afile -o $afile \
'
ক্রমানুসারে:
রিমোট ব্যবহারকারীর উমাস্ককে 077 এ সেট করুন, এটি এমন কোনও ডিরেক্টরি বা ফাইল তৈরি করতে যাচ্ছি, সেই অনুযায়ী তার অনুমতি সেট করা থাকবে:
$ ls -ld ~/.ssh ~/.ssh/authorized_keys
drwx------ 2 remoteuser remoteuser 4096 May 21 22:58 /home/remoteuser/.ssh
-rw------- 1 remoteuser remoteuser 771 May 21 23:03 /home/remoteuser/.ssh/authorized_keys
ডিরেক্টরি তৈরি করুন ~/.sshএবং যদি ইতিমধ্যে সেখানে থাকে তবে আমাদের সতর্কতা উপেক্ষা করুন
$afileঅনুমোদিত_কিগুলি ফাইলের পথ সহ একটি ভেরিয়েবল সেট করুন
cat - >> $afile - এসটিডিআইএন থেকে ইনপুট নিন এবং অনুমোদিত_কিগুলি ফাইলে সংযোজন করুন
sort -u $afile -o $afile - স্বতন্ত্রভাবে অনুমোদিত_কিজি ফাইলগুলি বাছাই করে এবং এটি সংরক্ষণ করে
দ্রষ্টব্য: শেষ বিটটি হ'ল কেসটি হ্যান্ডল করে যেখানে আপনি একই সার্ভারের বিরুদ্ধে উপরের একাধিকবার চালিত হন। এটি আপনার পাবিকে একাধিকবার সংযোজন করা থেকে দূরে ফেলবে।
একক টিক্স খেয়াল করুন!
এই সমস্ত কমান্ডগুলি একক উদ্ধৃতির অভ্যন্তরে বাসা বেধে আছে এদিকেও বিশেষ মনোযোগ দিন। এটি গুরুত্বপূর্ণ, যেহেতু আমরা $afileএটি দূরবর্তী সার্ভারে চালিত হওয়ার পরে মূল্যায়ন করতে চাই না ।
' \
..cmds... \
'
আমি উপরেরটি প্রসারিত করেছি সুতরাং এখানে পড়া সহজ, তবে আমি সাধারণত এটি সমস্ত একক লাইনে চালিত করি:
$ cat ~/.ssh/my_id_rsa.pub | pssh -h ips.txt -l remoteuser -A -I -i 'umask 077; mkdir -p ~/.ssh; afile=~/.ssh/authorized_keys; cat - >> $afile; sort -u $afile -o $afile'
বোনাস উপাদান
ব্যবহার করে psshআপনি ফাইলগুলি নির্মাণ করতে এবং হয় ব্যবহার করে গতিশীল সামগ্রী সরবরাহ -h <(...some command...)করতে পারেন অথবা আপনি অন্যগুলির psshসুইচগুলি ব্যবহার করে আইপিগুলির একটি তালিকা তৈরি করতে পারেন -H "ip1 ip2 ip3"।
উদাহরণ স্বরূপ:
$ cat .... | pssh -h <(grep -A1 dp15 ~/.ssh/config | grep -vE -- '#|--') ...
উপরেরটি আমার ~/.ssh/configফাইল থেকে আইপিগুলির একটি তালিকা বের করতে ব্যবহৃত হতে পারে । আপনি অবশ্যই printfগতিশীল সামগ্রী তৈরি করতেও ব্যবহার করতে পারেন :
$ cat .... | pssh -h <(printf "%s\n" srv0{0..9}) ....
উদাহরণ স্বরূপ:
$ printf "%s\n" srv0{0..9}
srv00
srv01
srv02
srv03
srv04
srv05
srv06
srv07
srv08
srv09
আপনি seqবিন্যাসিত সংখ্যা ক্রম উত্পন্ন করতেও ব্যবহার করতে পারেন !
রেফারেন্স এবং এর অনুরূপ সরঞ্জাম pssh
আপনি যদি psshউপরে এটি কাজটি করতে না চান তবে উপরে কিছু অন্যান্য বিকল্প রয়েছে।