ssh config के तहत cygwin


18

मेरे पास विंडोज 7 पर साइगविन स्थापित है। मैंने डिफ़ॉल्ट इंस्टॉल किया है। मैं मेजबान और कनेक्ट करने के लिए विकल्पों को सेट करने के लिए ssh config फाइल (~ / .ssh / config) का उपयोग करना चाहूंगा।

सामान्य ssh कमांड कनेक्ट करने का प्रयास करने के दौरान कॉन्फ़िगरेशन को खोजने में सक्षम नहीं है: ssh होस्ट यदि मैं स्पष्ट रूप से कॉन्फ़िग फ़ाइल निर्दिष्ट करता हूं, तो सब कुछ ठीक है: ssh -F ~ / .ssh / config।

मुझे ssh क्लाइंट को सेट करने का कोई विकल्प नहीं मिल रहा है, जैसे / etc / ssh

शायद ssh को नहीं पता कि मेरा होम फोल्डर कहां है? (मैंने अपने घर के फ़ोल्डर में गृह परिवेश चर सेट किया है)

जवाबों:


18

आपको पहले ssh-host-config चलाना है । यह "ssh_config" फ़ाइल को / etc / में जनरेट करेगा ।


4

मेरी भी यही समस्या थी। मैं ~ / .ssh / config का उपयोग करना चाहता था क्योंकि मैं पहले से ही अन्य अनुप्रयोगों के लिए उस निर्देशिका का उपयोग कर रहा था और 2 प्रतियों को बनाए रखना नहीं चाहता था। इसलिए / etc / ssh_config डायरेक्टरी बनाना आदर्श समाधान नहीं था।

जैसा कि Fujimoto Youichi का उल्लेख है, ssh आपके होम डायरेक्टरी के लिए / etc / passwd को देखता है न कि $ HOME पर्यावरण चर को।

वर्तमान साइबर वर्जन संस्करण (मैं 2.6 का उपयोग कर रहा हूं) अब इंस्टॉल के हिस्से के रूप में / etc / passwd नहीं बनाता है । हालाँकि, नया बनाना आसान है:

    mkpasswd -c -p "$(cygpath -H)" > /etc/passwd
  • -c वर्तमान उपयोगकर्ता को पासवार्ड फ़ाइल में जोड़ता है
  • -p "$ (cygpath -H)" आपके वर्तमान होम डायरेक्टरी को जोड़ता है

https://cygwin.com/cygwin-ug-net/mkpasswd.html उपलब्ध झंडे पर अधिक जानकारी है।

मैंने कोड को नहीं देखा है, लेकिन ssh की प्राथमिकता यह प्रतीत होती है:

  1. / Etc / ssh_config
  2. ~ / .Ssh / config

इसलिए यदि आप केवल ssh विन्यास जानकारी का उपयोग ~ / .shsh / config से करना चाहते हैं , तो हटाना सुनिश्चित करें / etc / ssh_config

इसके अलावा, परिवर्तन करने के बाद एक नई साइबरविन टर्मिनल विंडो खोलने के लिए सुनिश्चित करें, उनके लिए उपलब्ध होने के लिए।


ऐसा लगता है कि इसे / etc / defaults / ssh_config
VeraKozya

1

ssh कमांड होम / डायरेक्ट्री / पासवार्ड के तहत अपनी कॉन्फिग फाइल की तलाश करता है। तो गृह चर सेट करने से काम नहीं चलेगा।

कई तरीके हैं लेकिन हम इसे केवल एक सिमलिंक बनाकर ठीक कर सकते हैं।

ln -s ~ / घर


0

अन्य उत्तर मेरे काम नहीं आए। मैंने अभी c: \ cygwin64 \ etc \ ssh_config बनाया और निम्नलिखित डिफ़ॉल्ट / उदाहरण फ़ाइल में चिपकाया गया:

# This is the ssh client system-wide configuration file.  See
# ssh_config(5) for more information.  This file provides defaults for
# users, and the values can be changed in per-user configuration files
# or on the command line.

# Configuration data is parsed as follows:
#  1. command line options
#  2. user-specific file
#  3. system-wide file
# Any configuration value is only changed the first time it is set.
# Thus, host-specific definitions should be at the beginning of the
# configuration file, and defaults at the end.

# Site-wide defaults for some commonly used options.  For a comprehensive
# list of available options, their meanings and defaults, please see the
# ssh_config(5) man page.

# Host *
#   ForwardAgent no
#   ForwardX11 no
#   RhostsRSAAuthentication no
#   RSAAuthentication yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/identity
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   Port 22
#   Protocol 2,1
#   Cipher 3des
#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
#   MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#
#
Host *
    Port 22

आशा है कि अगले व्यक्ति की मदद करता है।


0

स्वीकृत उत्तर के अनुसार, इनिशियलाइज़ कमांड को इनिशियलाइज़ करने के लिए:

ssh-host-config

आप /etc/ssh_configसाइगविन में खाली भी बना सकते हैं , जो समान काम करेगा।

/etc/ssh_configद्वारा निर्माण ssh-host-configभी बाहर लाइनों सभी टिप्पणी के साथ खाली है।


नए कॉन्फ़िगरेशन के साथ SSH को पुनः लोड करें:

कॉन्फ़िगरेशन को प्रभावित करने के लिए, आप बस /etc/ssh_configपुनरारंभ सेवा के बिना संपादन समाप्त कर सकते हैं ।


1
यह स्वीकृत उत्तर से कैसे भिन्न होता है?
ग्रीननलाइन

मैं उस पर टिप्पणी नहीं कर सकता कि सिद्धांत को आगे कैसे समझा जाए और ssh config को कैसे प्रभावित किया जाए।
निक त्साई

आपको पहले कुछ प्रतिष्ठा अर्जित करने की आवश्यकता है। कुछ बुरी तरह से प्रारूपित पदों को संपादित करने की कोशिश करें, या एक अनुत्तरित प्रश्न का उत्तर दें :-)
ग्रीननलाइन

ठीक! मैंने यह उत्तर पोस्ट किया क्योंकि स्वीकृत उत्तर की जाँच करने के बाद, मैंने इस पर अधिक सर्वेक्षण किया। धन्यवाद।
निक त्साई

0

साइग्विन ssh को उम्मीद है कि इनकमिंग अंदर होगी /home/$USER। लेकिन घर की निर्देशिका "~" साइबरविन में है C:/Users/$USER, वास्तव /homeमें खाली है। आप दोनों हो सकता है C:/Users/$USER/.sshऔर /home/$USER/.sshवैध पथ, एक सिमलिंक बनाने के द्वारा हो:

ln -s ~ /home/$USER

0

वर्तमान में स्वीकृत उत्तर ने मेरे लिए समस्या को ठीक नहीं किया। इसके बजाय मैंने अपने सिगविन .sshउपयोगकर्ता के होम डायरेक्टरी में अपने विंडोज यूजर अकाउंट की होम डायरेक्टरी से डायरेक्टरी को सिमिलर किया :

ln -s /cygdrive/c/Users/<MY-USER>/.ssh /home/<MY-USER>/.ssh
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.