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)

Jawaban:


18

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


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.


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


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,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

Semoga itu bisa membantu orang selanjutnya.


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.


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

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.