आम तौर पर, अगर आप इस त्रुटि मिलती है, तो आप चाहिए
- होस्ट नाम
- उपयोगकर्ता
- प्रमाणीकरण विधि
: सटीक पैरामीटर paramiko साथ SSHing कोशिश उपयोग करने के लिए कोशिश कर रहा है
मुझे पता चला कि बहुत से एसएसएच कुंजी होने के कारण कुछ (लेकिन सभी नहीं) मेरे कपड़े एसएसएच कनेक्शन विफल होने के कारण, क्योंकि सभी चाबियाँ दूरस्थ मेजबान को दी जा रही थीं। अतीत में, विकृत कुंजी ने मेरे लिए यह त्रुटि संदेश भी उठाया है (आप उन्हें एक समय में ~/.ssh/
से चाबियाँ हटाकर देख सकते हैं।)
दुर्भाग्य से, फैब्रिक आपके .ssh/config सेटिंग्स का सम्मान नहीं करता है। आप इस डिबग करने के लिए चाहते हैं, तो आपको निम्न चला सकते हैं:
#!/usr/bin/env python
import paramiko
paramiko.util.log_to_file("/tmp/paramiko.log")
ssh = paramiko.SSHClient()
# Run this if you get host key errors: see later
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("example.com", username="myuser", password="mypassword")
और /tmp/paramiko.log
में उत्पादन की जांच - आप की तरह कुछ देख सकते हैं:
INF [20120904-16:58:52.155] thr=1 paramiko.transport: Disconnect (code 2): Too many authentication failures for myuser
आप set no_keys on the Fabric env environment कर सकते हैं:
env.no_keys = True
लेकिन फिर आपको विशिष्ट मेजबानों के लिए विशिष्ट कुंजी का उपयोग करने के लिए फैब्रिक को बताना होगा। जैसा कि ऊपर का सुझाव दिया, आप के साथ क्या कर सकते हैं कि आपके fabfile में:
from fabric.api import env
env.key_filename = "/path/to/.ssh/ssk_non_public_key"
अधिक आम तौर पर here's a function to parse your .ssh config and pull out selective keys - इस कुंजी में, SSH कुंजी का उपयोग करने के लिए। यह स्वचालित रूप से काम करने के लिए के लिए, आप ~/.ssh/config
को IdentityFile जोड़ने की आवश्यकता होगी:
Host example.com
IdentityFile /home/jp/.ssh/id_rsa_example
विफलता का एक अन्य कारण है कि paramiko does not recognize all host key types हो सकता है। यह कुछ और समस्याग्रस्त है: paramiko चुपचाप ~/.ssh/known_hosts
में मेजबान कुंजी को अनदेखा कर रहा है, क्योंकि यह मेजबान कुंजी का प्रारूप नहीं है जो यह समझता है। ssh-इंग -v साथ प्रयास करें और देखें क्या लाइन SSH इसके लिए एक होस्ट कुंजी मैच पाता है कहते हैं:
debug1: Host '1.2.3.4' is known and matches the RSA host key.
debug1: Found key in /home/jp/.ssh/known_hosts:105
आप इस लाइन को हटाने उसके बाद फिर से ssh कर रहे हैं और (नई?) होस्ट कुंजी को स्वीकार करने की कोशिश कर सकते हैं और देखें कि क्या paramiko खुश है। यदि यह समस्या है, हालांकि, और यह हल नहीं करता है, तो कोई स्पष्ट समाधान नहीं है जिसे मैं देख सकता हूं।
आपके एसएसएच सत्र के साथ कुछ अजीब हो रहा है। सर्वर क्या ओएस चल रहा है? 'Ssh -o" पसंदीदा प्रमाणीकरण = पासवर्ड "का प्रयास करें और देखें कि क्या यह आपको पहुंच से इनकार करता है या नहीं। – JimB
यह अभी काम करना शुरू कर दिया है। मैंने वीएम को रोकने और उन्हें पुनरारंभ करने के अलावा कुछ भी याद नहीं किया, लेकिन मैंने सोचा कि मैंने पहले ऐसा किया होगा ... वैसे भी विचारों के लिए सभी को धन्यवाद। – verbatim