डेबियन और उबंटू में ssh स्वतः पूर्णता को सक्षम करने के लिए:
sudo apt-get install bash-completion
ध्यान दें कि यह ज्ञात_होस्ट्स हैशिंग के साथ करने के लिए कुछ भी नहीं है , इसके विपरीत जो ऊपर कहा गया था और मूल प्रश्न। यदि आप ज्ञात_होस्ट से स्वत: पूर्ण होना चाहते हैं, तो बेशक आपको हैशिंग को अक्षम करना होगा, लेकिन इसके खिलाफ दृढ़ता से अनुशंसा की जाती है।
उदाहरण के लिए, मेरे पास:
Host *
HashKnownHosts yes
मेरे .ssh / config में, और मेरे पास अभी भी ssh स्वतः पूर्ण है, जो कि .ssh / config और / etc / मेजबान में सूचीबद्ध मेजबानों के खिलाफ ठीक काम कर रहा है। जैसा कि ओपी ने कहा है कि आपको मेजबान को .ssh / config में जोड़ना होगा:
मेरे भयानक-होस्ट को होस्टनाम। The.real.host.name होस्ट करें
(या, आप / etc / मेजबान के लिए एक मेजबान प्रविष्टि जोड़ सकते हैं, जो डेबियन / उबंटू स्क्रिप्ट के लिए एक और स्रोत है।)
फिर, आप बस टाइप कर सकते हैं ssh my-awe<tab>
और यह स्वचालित रूप से पूरा हो जाएगा। फिर, यह तब भी है जब आप HashKnownHosts, जो अत्यधिक अनुशंसित है। (ध्यान दें कि बैश समापन को आपके बैश शेल में सक्षम करने की आवश्यकता है, और आपको विशेष रूप से उन स्क्रिप्ट को अपने वितरण के लिए ऊपर स्थापित करने की आवश्यकता है।)
फिर, .bashrc
इसे सक्षम करने के लिए इन पंक्तियों को जोड़ें (लॉगआउट की आवश्यकता होती है और bash
नया शेल लॉन्च करने के लिए लॉग इन करें या बस एक नया टाइप करना होगा। (यदि यह पहले से ही /etc/bash.bashrc
और /etc/profile
स्रोतों में सक्षम है तो आपको सक्षम करने की आवश्यकता नहीं है /etc/bash.bashrc
)।
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
यह ssh स्वतः पूर्ण (अन्य बातों के अलावा!) सक्षम हो जाएगा से ~/.ssh/config
, /etc/hosts
आदि
ध्यान दें कि डेबियन बैश के बजाय राख को धोता है। आप आसानी से बैश में जा सकते हैं:
sudo usermod -s /bin/bash "$USER"
(प्रभावी होने के लिए आपको लॉग आउट करना होगा और वापस लॉग इन करना होगा।)