Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
ansible-ssh-hardening — यह Ansible role कई सुरक्षा-संबंधित ssh कॉन्फ़िगरेशन प्रदान करता है, जो सर्वांगीण बुनियादी सुरक्षा सुनिश्चित करता है। | Kitploit
उपकरण/GitHubGitHub/dev-sec/ansible-ssh-hardening
क्लाउड इन्फ्रास्ट्रक्चर सुरक्षाकॉन्फ़िगरेशन ऑडिटिंगनेटवर्क सुरक्षाDevSecOpsप्रमाणीकरणArchived
GitHubdev-sec/ansible-ssh-hardening

ansible-ssh-hardening

यह Ansible role कई सुरक्षा-संबंधित ssh कॉन्फ़िगरेशन प्रदान करता है, जो सर्वांगीण बुनियादी सुरक्षा सुनिश्चित करता है।

रिपॉजिटरी देखें
78519095 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
वेबसाइट
साझा करें

ssh-hardening (Ansible Role)

ध्यान दें: इस role को हमारे hardening-collection में स्थानांतरित कर दिया गया है:

  • https://github.com/dev-sec/ansible-os-hardening/
  • https://galaxy.ansible.com/devsec/hardening

कृपया वहाँ पर सभी issues और pull requests खोलें!

आवश्यकताएँ

  • Ansible > 2.5

Role Variables

  • network_ipv6_enable
    • डिफ़ॉल्ट: false
    • विवरण: true यदि IPv6 की आवश्यकता है। ssh_listen_to को भी IPv6 पतों (उदाहरण के लिए [::]) को सुनने के लिए सेट किया जाना चाहिए।
  • ssh_server_ports
    • डिफ़ॉल्ट: ['22']
    • विवरण: वे पोर्ट जिन पर ssh-server को सुनना चाहिए
  • ssh_client_port
  • डिफ़ॉल्ट: '22'
  • विवरण: वह पोर्ट जिससे ssh-client को कनेक्ट होना चाहिए
  • ssh_listen_to
    • डिफ़ॉल्ट: ['0.0.0.0']
    • विवरण: एक या अधिक IP पते, जिन पर ssh-server को सुनना चाहिए। डिफ़ॉल्ट सभी IPv4 पते हैं, लेकिन सुरक्षा कारणों से इसे विशिष्ट पतों पर कॉन्फ़िगर किया जाना चाहिए!
  • ssh_host_key_files
    • डिफ़ॉल्ट: []
    • विवरण: sshd के लिए होस्ट कुंजियाँ। यदि खाली है तो ['/etc/ssh/ssh_host_rsa_key', '/etc/ssh/ssh_host_ecdsa_key', '/etc/ssh/ssh_host_ed25519_key'] का उपयोग किया जाएगा, जहाँ तक स्थापित sshd संस्करण द्वारा समर्थित है
  • ssh_host_key_algorithms
    • डिफ़ॉल्ट: []
    • विवरण: होस्ट कुंजी एल्गोरिदम जो सर्वर प्रदान करता है। यदि खाली है तो डिफ़ॉल्ट सूची का उपयोग किया जाएगा, अन्यथा निर्दिष्ट एल्गोरिदम की सूची के साथ सेटिंग को ओवरराइड करता है
  • ssh_client_alive_interval
    • डिफ़ॉल्ट: 600
    • विवरण: keepalive संदेश भेजने के लिए एक अंतराल निर्दिष्ट करता है
  • ssh_client_alive_count
    • डिफ़ॉल्ट: 3
    • विवरण: परिभाषित करता है कि keep-alive संदेश कितनी बार भेजे जाते हैं
  • ssh_permit_tunnel
    • डिफ़ॉल्ट: false
    • विवरण: true यदि SSH पोर्ट टनलिंग की आवश्यकता है
  • ssh_remote_hosts
    • डिफ़ॉल्ट: []
    • विवरण: ssh-client के लिए एक या अधिक होस्ट और उनके कस्टम विकल्प। डिफ़ॉल्ट खाली है। defaults/main.yml में उदाहरण देखें।
  • ssh_permit_root_login
    • डिफ़ॉल्ट: no
    • विवरण: रूट-लॉगिन अक्षम करें। रूट-लॉगिन सक्षम करने के लिए without-password या yes पर सेट करें
  • ssh_allow_tcp_forwarding
    • डिफ़ॉल्ट: no
    • विवरण: TCP फ़ॉरवर्डिंग अक्षम करने के लिए 'no'। TCP फ़ॉरवर्डिंग की अनुमति देने के लिए 'yes' पर सेट करें। यदि आप OpenSSH >= 6.2 संस्करण का उपयोग कर रहे हैं, तो आप 'yes', 'no', 'all' या 'local' निर्दिष्ट कर सकते हैं।
      नोट: इस variable को दिए गए मान स्ट्रिंग होने चाहिए, इस प्रकार 'yes' और 'no' मान उद्धरणों के साथ दिए जाने चाहिए।
  • ssh_gateway_ports
    • डिफ़ॉल्ट: false
    • विवरण: फ़ॉरवर्ड किए गए पोर्ट को non-loopback पतों से बाइंड करने को अक्षम करने के लिए false। wildcard पते पर बाइंडिंग को बाध्य करने के लिए true पर सेट करें। क्लाइंट को यह निर्दिष्ट करने की अनुमति देने के लिए clientspecified पर सेट करें कि किस पते से बाइंड करना है।
  • ssh_allow_agent_forwarding
    • डिफ़ॉल्ट: false
    • विवरण: एजेंट फ़ॉरवर्डिंग अक्षम करने के लिए false। एजेंट फ़ॉरवर्डिंग की अनुमति देने के लिए true पर सेट करें।
  • ssh_x11_forwarding
    • डिफ़ॉल्ट: false
    • विवरण: X11 फ़ॉरवर्डिंग अक्षम करने के लिए false। X11 फ़ॉरवर्डिंग की अनुमति देने के लिए true पर सेट करें।
  • ssh_pam_support
    • डिफ़ॉल्ट: true
    • विवरण: true यदि SSH में PAM समर्थन है।
  • ssh_use_pam
    • डिफ़ॉल्ट: true
    • विवरण: pam प्रमाणीकरण अक्षम करने के लिए false।
  • ssh_gssapi_support
    • डिफ़ॉल्ट: false
    • विवरण: true यदि SSH में GSSAPI समर्थन है।
  • ssh_kerberos_support
    • डिफ़ॉल्ट: true
    • विवरण: true यदि SSH में Kerberos समर्थन है।
  • ssh_deny_users
    • डिफ़ॉल्ट: ''
    • विवरण: यदि निर्दिष्ट है, तो उन उपयोगकर्ता नामों के लिए लॉगिन अस्वीकृत है जो किसी एक पैटर्न से मेल खाते हैं।
  • ssh_allow_users
    • डिफ़ॉल्ट: ''
    • विवरण: यदि निर्दिष्ट है, तो लॉगिन केवल उन उपयोगकर्ता नामों के लिए अनुमत है जो किसी एक पैटर्न से मेल खाते हैं।
  • ssh_deny_groups
    • डिफ़ॉल्ट: ''
    • विवरण: यदि निर्दिष्ट है, तो उन उपयोगकर्ताओं के लिए लॉगिन अस्वीकृत है जिनकी प्राथमिक समूह या पूरक समूह सूची किसी एक पैटर्न से मेल खाती है।
  • ssh_allow_groups
    • डिफ़ॉल्ट: ''
    • विवरण: यदि निर्दिष्ट है, तो लॉगिन केवल उन उपयोगकर्ताओं के लिए अनुमत है जिनकी प्राथमिक समूह या पूरक समूह सूची किसी एक पैटर्न से मेल खाती है।
  • ssh_authorized_keys_file
    • डिफ़ॉल्ट: ''
    • विवरण: डिफ़ॉल्ट फ़ाइल बदलें जिसमें सार्वजनिक कुंजियाँ होती हैं जिनका उपयोग उपयोगकर्ता प्रमाणीकरण के लिए किया जा सकता है।
  • ssh_trusted_user_ca_keys_file
    • डिफ़ॉल्ट: ''
    • विवरण: उस फ़ाइल को निर्दिष्ट करता है जिसमें उपयोगकर्ता प्रमाणपत्रों पर हस्ताक्षर करने के लिए उपयोग की जाने वाली विश्वसनीय प्रमाणपत्र प्राधिकरण सार्वजनिक कुंजियाँ होती हैं।
  • ssh_trusted_user_ca_keys
    • डिफ़ॉल्ट: []
    • विवरण: उपयोगकर्ता प्रमाणपत्रों पर हस्ताक्षर करने के लिए उपयोग की जाने वाली विश्वसनीय प्रमाणपत्र प्राधिकरण सार्वजनिक कुंजियाँ सेट करें। केवल तभी उपयोग किया जाता है जब ssh_trusted_user_ca_keys_file सेट हो।
  • ssh_authorized_principals_file
    • डिफ़ॉल्ट: ''
    • विवरण: उस फ़ाइल को निर्दिष्ट करता है जिसमें अनुमत principals होते हैं। केवल तभी उपयोग किया जाता है जब ssh_trusted_user_ca_keys_file सेट हो।
  • ssh_authorized_principals
    • डिफ़ॉल्ट: []
    • विवरण: फ़ाइल पथ और अधिकृत principals वाले हैश की सूची, सभी विकल्पों के लिए default_custom.yml देखें। केवल तभी उपयोग किया जाता है जब ssh_authorized_principals_file सेट हो।
  • ssh_print_motd
    • डिफ़ॉल्ट: false
    • विवरण: MOTD की छपाई अक्षम करने के लिए false
  • ssh_print_pam_motd
    • डिफ़ॉल्ट: false
    • विवरण: pam के माध्यम से MOTD की छपाई अक्षम करने के लिए false (Debian और Ubuntu)
  • ssh_print_last_log
    • डिफ़ॉल्ट: false
    • विवरण: अंतिम लॉगिन जानकारी का प्रदर्शन अक्षम करने के लिए false
  • sftp_enabled
    • डिफ़ॉल्ट: false
    • विवरण: sftp कॉन्फ़िगरेशन सक्षम करने के लिए true
  • sftp_umask
    • डिफ़ॉल्ट: '0027'
    • विवरण: sftp के लिए umask निर्दिष्ट करता है
  • sftp_chroot
    • डिफ़ॉल्ट: true
    • विवरण: sftp के लिए chroot अक्षम करने के लिए false
  • sftp_chroot_dir
    • डिफ़ॉल्ट: /home/%u
    • विवरण: डिफ़ॉल्ट sftp chroot स्थान बदलें
  • ssh_client_roaming
    • डिफ़ॉल्ट: false
    • विवरण: प्रयोगात्मक क्लाइंट roaming सक्षम करें
  • sshd_moduli_file
    • डिफ़ॉल्ट: '/etc/ssh/moduli'
    • विवरण: SSH moduli फ़ाइल का पथ
  • sshd_moduli_minimum
    • डिफ़ॉल्ट: 2048
    • विवरण: logjam को कम करने के लिए परिभाषित आकार से छोटे Diffie-Hellman पैरामीटर हटाएँ
  • ssh_challengeresponseauthentication
    • डिफ़ॉल्ट: false
    • विवरण: निर्दिष्ट करता है कि challenge-response प्रमाणीकरण की अनुमति है या नहीं (जैसे PAM के माध्यम से)
  • ssh_client_password_login
    • डिफ़ॉल्ट: false
    • विवरण: ssh क्लाइंट के साथ पासवर्ड-आधारित प्रमाणीकरण की अनुमति देने के लिए true
  • ssh_server_password_login
    • डिफ़ॉल्ट: false
    • विवरण: ssh सर्वर के साथ पासवर्ड-आधारित प्रमाणीकरण की अनुमति देने के लिए true
  • ssh_banner
    • डिफ़ॉल्ट: false
    • विवरण: लॉगिन पर बैनर प्रिंट करने के लिए true
  • ssh_banner_path
    • डिफ़ॉल्ट: '/etc/sshd/banner.txt'
    • विवरण: SSH बैनर फ़ाइल का पथ
  • ssh_client_hardening
    • डिफ़ॉल्ट: true
    • विवरण: क्लाइंट को हार्डन करना बंद करने के लिए false
  • ssh_client_port
    • डिफ़ॉल्ट: '22'
    • विवरण: रिमोट होस्ट पर कनेक्ट करने के लिए पोर्ट नंबर निर्दिष्ट करता है।
  • ssh_client_compression
    • डिफ़ॉल्ट: false
    • विवरण: निर्दिष्ट करता है कि क्लाइंट संपीड़न का अनुरोध करता है या नहीं।
  • ssh_compression
    • डिफ़ॉल्ट: false
    • विवरण: निर्दिष्ट करता है कि उपयोगकर्ता के सफलतापूर्वक प्रमाणित होने के बाद सर्वर-साइड संपीड़न सक्षम है या नहीं।
  • ssh_login_grace_time
    • डिफ़ॉल्ट: 30s
    • विवरण: SSH सर्वर पर सफल प्रमाणीकरण के लिए अनुमत समय निर्दिष्ट करता है
  • ssh_max_auth_retries
    • डिफ़ॉल्ट: 2
    • विवरण: प्रति कनेक्शन अनुमत प्रमाणीकरण प्रयासों की अधिकतम संख्या निर्दिष्ट करता है।
  • ssh_max_sessions
    • डिफ़ॉल्ट: 10
    • विवरण: किसी दिए गए कनेक्शन से अनुमत खुली सत्रों की अधिकतम संख्या निर्दिष्ट करता है।
  • ssh_print_debian_banner
    • डिफ़ॉल्ट: false
    • विवरण: debian विशिष्ट बैनर प्रिंट करने के लिए true
  • ssh_server_enabled
    • डिफ़ॉल्ट: true
    • विवरण: opensshd सर्वर अक्षम करने के लिए false
  • ssh_server_hardening
    • डिफ़ॉल्ट: true
    • विवरण: सर्वर को हार्डन करना बंद करने के लिए false
  • ssh_server_match_address
    • डिफ़ॉल्ट: ''
    • विवरण: एक सशर्त ब्लॉक प्रस्तुत करता है। यदि Match पंक्ति के सभी मानदंड संतुष्ट हैं, तो निम्नलिखित पंक्तियों पर कीवर्ड कॉन्फ़िगरेशन फ़ाइल के वैश्विक अनुभाग में सेट किए गए को ओवरराइड करते हैं, जब तक कि कोई अन्य Match पंक्ति या फ़ाइल का अंत न हो।
  • ssh_server_match_group
    • डिफ़ॉल्ट: ''
    • विवरण: एक सशर्त ब्लॉक प्रस्तुत करता है। यदि Match पंक्ति के सभी मानदंड संतुष्ट हैं, तो निम्नलिखित पंक्तियों पर कीवर्ड कॉन्फ़िगरेशन फ़ाइल के वैश्विक अनुभाग में सेट किए गए को ओवरराइड करते हैं, जब तक कि कोई अन्य Match पंक्ति या फ़ाइल का अंत न हो।
  • ssh_server_match_user
    • डिफ़ॉल्ट: ''
    • विवरण: एक सशर्त ब्लॉक प्रस्तुत करता है। यदि Match पंक्ति के सभी मानदंड संतुष्ट हैं, तो निम्नलिखित पंक्तियों पर कीवर्ड कॉन्फ़िगरेशन फ़ाइल के वैश्विक अनुभाग में सेट किए गए को ओवरराइड करते हैं, जब तक कि कोई अन्य Match पंक्ति या फ़ाइल का अंत न हो।
  • ssh_server_match_local_port
    • डिफ़ॉल्ट: ''
    • विवरण: एक सशर्त ब्लॉक प्रस्तुत करता है। यदि Match पंक्ति के सभी मानदंड संतुष्ट हैं, तो निम्नलिखित पंक्तियों पर कीवर्ड कॉन्फ़िगरेशन फ़ाइल के वैश्विक अनुभाग में सेट किए गए को ओवरराइड करते हैं, जब तक कि कोई अन्य Match पंक्ति या फ़ाइल का अंत न हो।
  • ssh_server_permit_environment_vars
    • डिफ़ॉल्ट: no
    • विवरण: yes यह निर्दिष्ट करने के लिए कि ~/.ssh/environment और ~/.ssh/authorized_keys में environment= विकल्प sshd द्वारा संसाधित किए जाते हैं। openssh संस्करण 7.8 के साथ वैश्विक "yes" या "no" सेटिंग्स के अतिरिक्त पर्यावरण चर नामों की एक whitelist निर्दिष्ट करना संभव है
  • ssh_server_accept_env_vars
    • डिफ़ॉल्ट: ''
    • विवरण: निर्दिष्ट करता है कि क्लाइंट द्वारा भेजे गए कौन से पर्यावरण चर सत्र के पर्यावरण में कॉपी किए जाएंगे, कई पर्यावरण चर whitespace द्वारा अलग किए जा सकते हैं
  • ssh_use_dns
    • डिफ़ॉल्ट: false
    • विवरण: निर्दिष्ट करता है कि sshd को रिमोट होस्ट नाम देखना चाहिए, और यह जांचना चाहिए कि रिमोट IP पते के लिए हल किया गया होस्ट नाम उसी IP पते पर वापस मैप करता है या नहीं।
  • ssh_server_revoked_keys
    • डिफ़ॉल्ट: []
    • विवरण: निरस्त सार्वजनिक कुंजियों की सूची जिन्हें ssh सर्वर हमेशा अस्वीकार करेगा, ज्ञात कमजोर या समझौता की गई कुंजियों को निरस्त करने के लिए उपयोगी।
  • ssh_max_startups
    • डिफ़ॉल्ट: '10:30:100'
    • विवरण: SSH डेमॉन के लिए समवर्ती अप्रमाणित कनेक्शनों की अधिकतम संख्या निर्दिष्ट करता है।
  • ssh_macs
    • डिफ़ॉल्ट: []
    • विवरण: macs को ओवरराइट करने के लिए इस सूची को बदलें। डिफ़ॉल्ट defaults/main.yml में पाए जाते हैं
  • ssh_kex
    • डिफ़ॉल्ट: []
    • विवरण: kexs को ओवरराइट करने के लिए इस सूची को बदलें। डिफ़ॉल्ट defaults/main.yml में पाए जाते हैं
  • ssh_ciphers
    • डिफ़ॉल्ट: []
    • विवरण: ciphers को ओवरराइट करने के लिए इस सूची को बदलें। डिफ़ॉल्ट defaults/main.yml में पाए जाते हैं
  • ssh_custom_options
    • डिफ़ॉल्ट: []
    • विवरण: SSH क्लाइंट कॉन्फ़िगरेशन के लिए कस्टम पंक्तियाँ
  • sshd_custom_options
    • डिफ़ॉल्ट: []
    • विवरण: SSH डेमॉन कॉन्फ़िगरेशन के लिए कस्टम पंक्तियाँ
  • sshd_syslog_facility
    • डिफ़ॉल्ट: 'AUTH'
    • विवरण: sshd से संदेश लॉग करते समय उपयोग किया जाने वाला facility कोड
  • sshd_log_level
    • डिफ़ॉल्ट: 'VERBOSE'
    • विवरण: sshd से संदेश लॉग करते समय उपयोग किया जाने वाला verbosity स्तर
  • sshd_strict_modes
    • डिफ़ॉल्ट: true
    • विवरण: लॉगिन स्वीकार करने से पहले उपयोगकर्ता की फ़ाइलों और होम निर्देशिका के फ़ाइल मोड और स्वामित्व की जाँच करें
  • sshd_authenticationmethods
    • डिफ़ॉल्ट: publickey
    • विवरण: उन प्रमाणीकरण विधियों को निर्दिष्ट करता है जिन्हें उपयोगकर्ता को पहुँच प्रदान करने के लिए सफलतापूर्वक पूरा किया जाना चाहिए। अपने चयनित प्रमाणीकरण विधि के लिए सभी आवश्यक variables सेट करना सुनिश्चित करें। डिफ़ॉल्ट defaults/main.yml में पाए जाते हैं
  • role-variables में सूचीबद्ध नहीं की गई सेटिंग्स कॉन्फ़िगर करना

    यदि आप ऊपर सूचीबद्ध नहीं की गई ssh विकल्पों को कॉन्फ़िगर करना चाहते हैं, तो आप उन्हें सेट करने के लिए ssh_custom_options (/etc/ssh/ssh_config के लिए) या sshd_custom_options (/etc/ssh/sshd_config के लिए) का उपयोग कर सकते हैं। ये विकल्प फ़ाइल की शुरुआत में सेट किए जाएंगे ताकि आप फ़ाइल में आगे विकल्पों को ओवरराइड कर सकें।

    उदाहरण playbook:

    root@kitploit:~
    - hosts: localhost
      roles:
        - dev-sec.ssh-hardening
      vars:
        ssh_custom_options:
          - "Include /etc/ssh/ssh_config.d/*"
        sshd_custom_options:
          - "AcceptEnv LANG"
    

    डिफ़ॉल्ट पोर्ट और idempotency बदलना

    यह role सर्वर से कनेक्ट करने के लिए डिफ़ॉल्ट पोर्ट 22 या inventory में कॉन्फ़िगर किए गए पोर्ट का उपयोग करता है। यदि डिफ़ॉल्ट ssh पोर्ट को ssh_server_ports के माध्यम से बदला जाता है, तो ssh सर्वर के पुनरारंभ होने के बाद भी, यह पिछले पोर्ट का उपयोग करके कनेक्ट करने का प्रयास करेगा। उसी सर्वर पर इस role को फिर से चलाने के लिए, नए ssh पोर्ट का उपयोग करने के लिए inventory को अपडेट करना होगा।

    यदि idempotency महत्वपूर्ण है, तो कृपया role ssh-hardening-fallback का उपयोग करने पर विचार करें, जो इस role के चारों ओर एक wrapper है जो कॉन्फ़िगर किए गए पोर्ट तक पहुँचने में असमर्थ होने पर पोर्ट 22 पर वापस आ जाता है।

    उदाहरण Playbook

    root@kitploit:~
    - hosts: localhost
      roles:
        - dev-sec.ssh-hardening
    

    स्थानीय परीक्षण

    Role का स्थानीय रूप से परीक्षण करने का पसंदीदा तरीका Docker का उपयोग करना है। आपको अपने सिस्टम पर Docker स्थापित करना होगा। अपने सिस्टम के लिए उपयुक्त Docker पैकेज के लिए Get started देखें।

    आप स्थानीय रूप से परीक्षण चलाने के लिए vagrant और Virtualbox या VMWare का भी उपयोग कर सकते हैं। आपको अपने सिस्टम पर Virtualbox और Vagrant स्थापित करना होगा। अपने सिस्टम के लिए उपयुक्त vagrant पैकेज के लिए Vagrant Downloads देखें। हमारे सभी परीक्षणों के लिए हम test-kitchen का उपयोग करते हैं। यदि आप test-kitchen से परिचित नहीं हैं, तो कृपया उनका गाइड देखें।

    अगला test-kitchen स्थापित करें:

    root@kitploit:~
    # निर्भरताएँ स्थापित करें
    gem install bundler
    bundle install
    

    Docker के साथ परीक्षण

    root@kitploit:~
    # एक मशीन पर तेज़ परीक्षण
    bundle exec kitchen test ssh-ubuntu1804-ansible-latest
    
    # सभी मशीनों पर परीक्षण
    bundle exec kitchen test
    
    # विकास के लिए
    bundle exec kitchen create ssh-ubuntu1804-ansible-latest
    bundle exec kitchen converge ssh-ubuntu1804-ansible-latest
    bundle exec kitchen verify ssh-ubuntu1804-ansible-latest
    
    # सफाई
    bundle exec kitchen destroy ssh-ubuntu1804-ansible-latest
    

    Virtualbox के साथ परीक्षण

    root@kitploit:~
    # एक मशीन पर तेज़ परीक्षण
    KITCHEN_YAML=".kitchen.vagrant.yml" bundle exec kitchen test ssh-ubuntu-1804
    
    # सभी मशीनों पर परीक्षण
    KITCHEN_YAML=".kitchen.vagrant.yml" bundle exec kitchen test
    
    # विकास के लिए
    KITCHEN_YAML=".kitchen.vagrant.yml" bundle exec kitchen create ssh-ubuntu-1804
    KITCHEN_YAML=".kitchen.vagrant.yml" bundle exec kitchen converge ssh-ubuntu-1804
    

    अधिक जानकारी के लिए test-kitchen देखें

    FAQ / समस्याएँ

    मैं अपने खाते में लॉग इन नहीं कर सकता। मैंने क्लाइंट कुंजी पंजीकृत की है, लेकिन यह अभी भी मुझे अंदर नहीं जाने देती।

    यदि आपने सभी सामान्य समस्याओं (फ़ायरवॉल, नेटवर्क, कुंजी गायब, गलत कुंजी, खाता अक्षम आदि) को समाप्त कर दिया है, तो यह हो सकता है कि आपका खाता लॉक हो गया है। पता लगाने का सबसे तेज़ तरीका अपने उपयोगकर्ता के लिए पासवर्ड हैश देखना है:

    root@kitploit:~
    sudo grep myuser /etc/shadow
    

    यदि हैश में ! शामिल है, तो आपका खाता लॉक है:

    root@kitploit:~
    myuser:!:16280:7:60:7:::
    

    इसे हल करने का उचित तरीका खाते को अनलॉक करना है (passwd -u myuser)। यदि उपयोगकर्ता के पास पासवर्ड नहीं है, तो आप इसे इसके माध्यम से अनलॉक कर सकते हैं:

    root@kitploit:~
    usermod -p "*" myuser
    

    वैकल्पिक रूप से, यदि आप PAM का उपयोग करने का इरादा रखते हैं, तो आपने इसे ssh_use_pam: true के माध्यम से सक्षम किया है। PAM लॉक किए गए उपयोगकर्ताओं को कुंजियों के साथ अंदर आने की अनुमति देगा।

    मेरा एप्लिकेशन अब SSH के माध्यम से कनेक्ट क्यों नहीं होता?

    हमेशा पहले लॉग फ़ाइलों को देखें और यदि संभव हो तो कनेक्ट करते समय क्लाइंट और सर्वर के बीच पूर्ण negotiation देखें।

    हमने कुछ एप्लिकेशनों (python और ruby पर आधारित) में समस्याएँ देखी हैं जो पुराने crypto सेट के उपयोग के कारण होती हैं। यह इस hardening मॉड्यूल से टकराता है, जिसने ciphers, message authentication codes (MACs) और key exchange (KEX) एल्गोरिदम की सूची को अधिक सुरक्षित चयन तक कम कर दिया है।

    Role का उपयोग करने के बाद Ansibles template/copy/file मॉड्यूल अब काम नहीं करता!

    यह role डिफ़ॉल्ट रूप से SFTP को निष्क्रिय कर देता है। Ansible डिफ़ॉल्ट रूप से फ़ाइलों को रिमोट होस्ट पर स्थानांतरित करने के लिए SFTP का उपयोग करता है। आपको अपने ansible.cfg में scp_if_ssh = True सेट करना होगा। इस तरह Ansible फ़ाइलों को कॉपी करने के लिए SCP का उपयोग करता है। वैकल्पिक रूप से आप sftp_enabled को true पर सेट करके SFTP को फिर से सक्षम कर सकते हैं।

    विशेषाधिकारों की कमी के कारण sshd-service को पुनरारंभ नहीं कर सकते

    यदि आपको handler "restart sshd" चलाते समय निम्न त्रुटि मिलती है

    root@kitploit:~
    Unable to restart service ssh: Failed to restart ssh.service: Access denied
    

    या

    root@kitploit:~
    failure 1 running systemctl show for 'ssh': Failed to connect to bus: No such file or directory
    

    या तो playbook को root के रूप में चलाएँ (playbook स्तर पर become: yes के बिना), या handler में become: yes जोड़ें।

    यह Ansible के साथ एक बग है: अधिक जानकार

    टूल डाउनलोड करें