ssh config di bawah cygwin

18

Saya telah menginstal Cygwin pada Windows 7. Saya membuat instalasi default. Saya ingin menggunakan file konfigurasi ssh (~ / .ssh / config) untuk mengatur host dan opsi untuk menghubungkan.

Perintah ssh normal tidak dapat menemukan konfigurasi sementara saya mencoba menghubungkan: ssh host Jika saya secara eksplisit menentukan file konfigurasi, semuanya OK: ssh -F ~ / .ssh / config

Saya tidak dapat menemukan opsi untuk mengatur klien ssh, seperti / etc / ssh

Mungkin ssh tidak tahu di mana folder rumah saya? (Saya telah menetapkan variabel lingkungan HOME ke folder rumah saya)

Hubidubi
sumber

Jawaban:

18

Anda harus menjalankan ssh-host-config terlebih dahulu. Ini akan menghasilkan file "ssh_config" di / etc / .


sumber
4

Saya memiliki masalah yang sama. Saya ingin menggunakan ~ / .ssh / config karena saya sudah menggunakan direktori itu untuk aplikasi lain dan tidak ingin menyimpan 2 salinan. Jadi membuat direktori / etc / ssh_config bukanlah solusi yang ideal.

Seperti yang disebutkan Fujimoto Youichi, ssh melihat / etc / passwd untuk direktori home Anda dan bukan variabel lingkungan $ HOME .

Versi cygwin saat ini (saya menggunakan 2.6) tidak lagi membuat / etc / passwd sebagai bagian dari instalasi. Namun, mudah untuk membuat yang baru:

    mkpasswd -c -p "$(cygpath -H)" > /etc/passwd
  • -c Menambahkan pengguna saat ini ke file passwd
  • -p "$ (cygpath -H)" Menambahkan direktori home Anda saat ini

https://cygwin.com/cygwin-ug-net/mkpasswd.html memiliki detail lebih lanjut tentang flag yang tersedia.

Saya belum melihat kode, tetapi preferensi ssh tampaknya:

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

Jadi jika Anda hanya ingin menggunakan informasi konfigurasi ssh dari ~ / .ssh / config , maka pastikan untuk menghapus / etc / ssh_config .

Juga, pastikan untuk membuka jendela terminal cygwin baru setelah membuat perubahan, agar tersedia.

kyleus
sumber
tampaknya sudah dipindahkan ke / etc / defaults / ssh_config
VeraKozya
1

Perintah ssh mencari file config-nya di bawah direktori home dari / etc / passwd. Jadi pengaturan variabel HOME tidak akan berfungsi.

Ada banyak cara tetapi kita dapat memperbaikinya hanya dengan membuat symlink sebagai berikut.

Di -s ~ / rumah

Fujimoto Youichi
sumber
0

Jawaban lain tidak berhasil untuk saya. Saya baru saja membuat c: \ cygwin64 \ etc \ ssh_config dan disisipkan dalam file default / contoh berikut:

# 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,[email protected],hmac-ripemd160
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#
#
Host *
    Port 22

Semoga itu bisa membantu orang selanjutnya.

Ryan Shillington
sumber
0

Menurut jawaban yang diterima, dengan menggunakan perintah untuk menginisialisasi:

ssh-host-config

Anda juga dapat membuat kosong /etc/ssh_configdi Cygwin, yang akan berfungsi sama.

Pembuatan /etc/ssh_configoleh ssh-host-configjuga kosong dengan semua baris komentar.


Muat ulang SSH dengan konfigurasi baru:

Untuk mengaktifkan konfigurasi, Anda dapat menyelesaikan pengeditan /etc/ssh_configtanpa memulai ulang layanan.

Nick Tsai
sumber
1
Apa bedanya dengan jawaban yang diterima?
Greenonline
Saya tidak bisa mengomentarinya untuk lebih menjelaskan prinsip dan bagaimana efek ssh config.
Nick Tsai
Anda harus mendapatkan reputasi terlebih dahulu. Cobalah mengedit beberapa posting yang diformat dengan buruk, atau menjawab pertanyaan yang tidak dijawab :-)
Greenonline
BAIK! Saya memposting jawaban ini karena setelah memeriksa jawaban yang diterima, saya melakukan lebih banyak survei. Terima kasih.
Nick Tsai
0

Cygwin ssh mengharapkan konfigurasi berada di /home/$USER. Tapi direktori home "~" di cygwin adalah C:/Users/$USER, memang /homekosong. Anda dapat memiliki keduanya C:/Users/$USER/.sshdan /home/$USER/.sshmenjadi jalur yang valid, dengan membuat symlink:

ln -s ~ /home/$USER
Mapad
sumber
0

Jawaban yang saat ini diterima tidak memperbaiki masalah bagi saya. Alih-alih, saya menyinkronkan .sshdirektori dari direktori home akun pengguna Windows saya ke direktori home pengguna Cygwin saya:

ln -s /cygdrive/c/Users/<MY-USER>/.ssh /home/<MY-USER>/.ssh
tiguchi
sumber