मेरे पास एक मास्टर और चार दास कंप्यूटर हैं। मैंने मास्टर पीसी पर आरएसए सार्वजनिक / निजी कुंजी उत्पन्न की। फिर मैंने पब्लिक की नकल की ( id_rsa.pub
) के रूप में मशीनों दास authorized_keys
।
जब मैं मास्टर पीसी के टर्मिनल पर इस तरह SSH आह्वान करता हूं तो यह पासवर्ड नहीं पूछता है:
ssh –o UserKnownHostsFile=/dev/null –o StrictHostKeyChecking=no hduser@slave1
मैंने यह स्क्रिप्ट पासवर्ड के बिना स्वचालित रूप से दास मशीनों को लॉगिन करने के लिए लिखी थी।
SERVER_LIST=`cat /home/hduser/slaves` # slave1, slave2 ...
for host in $SERVER_LIST; do
host=hduser@$host
ssh –t –o UserKnownHostsFile=/dev/null –o StrictHostKeyChecking=no $host;
done
जब मैं इस स्क्रिप्ट का उपयोग करता हूं तो SSH दास से पासवर्ड पूछ रहा है। SSH के साथ उपयोग करने पर मुझे यह संदेश मिल रहा है -vv
विकल्प:
debug1: ssh_ecdsa_verify: signature correct
debug2: kex_derive_keys
debug2: set_newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug2: set_newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /root/.ssh/id_rsa ((nil))
debug2: key: /root/.ssh/id_dsa ((nil))
debug2: key: /root/.ssh/id_ecdsa ((nil))
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/id_rsa
debug1: Trying private key: /root/.ssh/id_dsa
debug1: Trying private key: /root/.ssh/id_ecdsa
debug2: we did not send a packet, disable method
debug1: Next authentication method: password
hduser@slave1's password:
मैंने मास्टर पीसी और गुलाम पीसी पर अनुमतियां बदल दीं।
sudo chmod 755 /home/hduser
sudo chmod 700 -R ~/.ssh
sudo chown hduser ~/.ssh
जब मैं टर्मिनल पर SSH आह्वान करता हूं तो यह पासवर्ड नहीं पूछता है, लेकिन यह तब भी पासवर्ड पूछ रहा है जब इसे स्क्रिप्ट में शामिल किया गया है। मैं क्या खो रहा हूँ? मेरे द्वारा यह कैसे किया जा सकता है?
hduser
इस स्क्रिप्ट को मास्टर पीसी पर रूट के रूप में चलाता है।
root
। मैंने उनके साथ उत्पन्न किया hduser
जड़ के रूप में। यह सही ढंग से काम करता है अगर मैं मास्टर पीसी के टर्मिनल पर ssh को आमंत्रित करता हूं यह स्क्रिप्ट में काम नहीं करता है।
id_rsa
तथा id_rsa.pub
के अंतर्गत /home/hduser/.ssh/
निर्देशिका के लिए /root/.ssh/
।