ssh config ภายใต้ cygwin


18

ฉันติดตั้ง Cygwin บน Windows 7 แล้วฉันได้ติดตั้งเป็นค่าเริ่มต้น ฉันต้องการใช้ไฟล์ ssh config (~ / .ssh / config) เพื่อตั้งค่าโฮสต์และตัวเลือกสำหรับการเชื่อมต่อ

คำสั่ง ssh ปกติไม่สามารถค้นหาการกำหนดค่าในขณะที่ฉันพยายามเชื่อมต่อ: โฮสต์ ssh ถ้าฉันระบุไฟล์ config อย่างชัดเจนทุกอย่างก็โอเค: ssh -F ~ / .ssh / config

ฉันไม่พบตัวเลือกใด ๆ ในการตั้งค่าไคลเอ็นต์ ssh สิ่งที่ต้องการ / etc / ssh

บางที ssh ไม่ทราบว่าโฟลเดอร์บ้านของฉันอยู่ที่ไหน (ฉันได้ตั้งค่าตัวแปรสภาพแวดล้อม HOME เป็นโฟลเดอร์บ้านของฉัน)

คำตอบ:


18

คุณต้องเรียกใช้ssh-host-configก่อน มันจะสร้างไฟล์ "ssh_config" ใน/ etc /


4

ฉันมีปัญหาเดียวกัน ฉันต้องการใช้~ / .ssh / configเพราะฉันใช้ไดเรกทอรีนั้นอยู่แล้วสำหรับแอปพลิเคชันอื่นและไม่ต้องการเก็บสำเนา 2 ชุด ดังนั้นการสร้างไดเรกทอรี/ etc / ssh_configไม่ใช่ทางออกที่ดีที่สุด

ตามที่ Fujimoto Youichi กล่าวถึง ssh จะดูที่/ etc / passwdสำหรับไดเรกทอรีหลักของคุณไม่ใช่ตัวแปรสภาพแวดล้อม $ HOME

เวอร์ชัน cygwin ปัจจุบัน (ฉันใช้ 2.6) จะไม่สร้าง/ etc / passwdเป็นส่วนหนึ่งของการติดตั้งอีกต่อไป อย่างไรก็ตามมันง่ายในการสร้างขึ้นมาใหม่:

    mkpasswd -c -p "$(cygpath -H)" > /etc/passwd
  • -cเพิ่มผู้ใช้ปัจจุบันไปยังไฟล์ passwd
  • -p "$ (cygpath -H)"เพิ่มโฮมไดเร็กตอรี่ปัจจุบันของคุณ

https://cygwin.com/cygwin-ug-net/mkpasswd.htmlมีรายละเอียดเพิ่มเติมเกี่ยวกับการตั้งค่าสถานะที่มีอยู่

ฉันไม่ได้ดูรหัส แต่การตั้งค่าของ ssh น่าจะเป็น:

  1. / etc / ssh_config
  2. ~ / .ssh / config

ดังนั้นถ้าคุณเพียงต้องการที่จะใช้ข้อมูลการกำหนดค่า SSH จาก~ / .ssh / configแล้วให้แน่ใจว่าจะลบไฟล์ /

นอกจากนี้อย่าลืมเปิดหน้าต่างเทอร์มินัล cygwin ใหม่หลังจากทำการเปลี่ยนแปลงเพื่อให้พร้อมใช้งาน


ดูเหมือนว่าจะถูกย้ายไปที่ / etc / defaults / ssh_config
VeraKozya

1

คำสั่ง ssh ค้นหาไฟล์กำหนดค่าภายใต้โฮมไดเร็กทอรีจาก / etc / passwd ดังนั้นการตั้งค่าตัวแปร HOME จะไม่ทำงาน

มีหลายวิธี แต่เราสามารถแก้ไขได้โดยเพียงทำ symlink ดังนี้

ln -s ~ / home


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ใน Cygwin ซึ่งจะทำงานเหมือนกัน

การ/etc/ssh_configสร้างโดยssh-host-configว่างเปล่าด้วยบรรทัดความคิดเห็นทั้งหมด


โหลด SSH ด้วยการกำหนดค่าใหม่:

หากต้องการเอฟเฟกต์การตั้งค่าคุณสามารถแก้ไขได้/etc/ssh_configโดยไม่ต้องเริ่มบริการใหม่


1
สิ่งนี้แตกต่างจากคำตอบที่ยอมรับได้อย่างไร
Greenonline

ฉันไม่สามารถแสดงความคิดเห็นเพื่ออธิบายหลักการและวิธีการกำหนดค่า ssh
Nick Tsai

คุณต้องได้รับชื่อเสียงก่อน ลองแก้ไขโพสต์ที่มีรูปแบบไม่ดีหรือตอบคำถามที่ยังไม่ได้รับคำตอบ :-)
Greenonline

ตกลง! ฉันโพสต์คำตอบนี้เพราะหลังจากตรวจสอบคำตอบที่ยอมรับแล้วฉันก็ทำแบบสำรวจเพิ่มเติม ขอขอบคุณ.
Nick Tsai

0

Cygwin ssh คาดว่าจะมีการ/home/$USERกำหนดค่า แต่ไดเรกทอรีบ้าน "~" ใน Cygwin เป็นC:/Users/$USERจริง/homeเป็นที่ว่างเปล่า คุณสามารถมีทั้งคู่C:/Users/$USER/.sshและ/home/$USER/.sshเป็นพา ธ ที่ถูกต้องโดยสร้าง symlink:

ln -s ~ /home/$USER

0

คำตอบที่ยอมรับในปัจจุบันไม่สามารถแก้ปัญหาให้ฉันได้ แต่ฉันเชื่อมโยง.sshไดเรกทอรีจากโฮมไดเร็กตอรี่ของบัญชีผู้ใช้ Windows ของฉันไปยังโฮมไดเร็กตอรี่ของผู้ใช้ Cygwin ของฉัน:

ln -s /cygdrive/c/Users/<MY-USER>/.ssh /home/<MY-USER>/.ssh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.