cygwinの下のssh設定


18

Windows 7にCygwinをインストールしています。デフォルトのインストールを行いました。ssh構成ファイル(〜/ .ssh / config)を使用して、接続するホストとオプションを設定したいと思います。

通常のsshコマンドでは、接続しようとしているときに構成を見つけることができません。

/ etc / sshのようなsshクライアントを設定するオプションが見つかりません

たぶんsshは私のホームフォルダがどこにあるのか分からないのでしょうか?(HOME環境変数をホームフォルダーに設定しました)

回答:


18

最初にssh-host-configを実行する必要があります/ etc /に「ssh_config」ファイルが生成されます。


4

同じ問題がありました。〜/ .ssh / configを使用したかったのは、すでにそのディレクトリを他のアプリケーションに使用しており、2つのコピーを保持したくなかったからです。したがって、/ etc / ssh_configディレクトリを作成することは理想的なソリューションではありませんでした。

Fujimoto Youichiが述べているように、ssh は$ HOME環境変数ではなく、ホームディレクトリの/ etc / passwdを調べます。

現在の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 / configのssh構成情報のみを使用する場合は、/ etc / ssh_configを削除してください。

また、変更を加えた後、新しいcygwinターミナルウィンドウを開いて、それらを使用可能にします。


/ etc / defaults / ssh_configに再配置されたようです
VeraKozya

1

sshコマンドは、/ etc / passwdからホームディレクトリでその構成ファイルを探します。したがって、HOME変数の設定は機能しません。

多くの方法がありますが、次のようにシンボリックリンクを作成するだけで修正できます。

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_configCygwinでempty を作成することもできますが、これは同じように機能します。

/etc/ssh_config作成することによっては、ssh-host-configラインアウト、すべてのコメントと空もあります。


新しい構成でSSHをリロードします。

設定を有効にするには、/etc/ssh_configサービスを再起動せずに編集を終了するだけです。


1
これは受け入れられた答えとどう違うのですか?
Greenonline

原理とssh構成の効果をさらに説明するためにコメントすることはできません。
ニック・ツァイ

最初に評判を得る必要があります。
不適切な

OK!受け入れられた回答を確認した後、さらに調査を行ったため、この回答を投稿しました。ありがとうございました。
ニック・ツァイ

0

Cygwin sshは、設定がにあることを想定しています/home/$USER。しかし、cygwinのホームディレクトリ「〜」はC:/Users/$USER、実際に/homeは空です。シンボリックリンクを作成することにより、両方をC:/Users/$USER/.ssh持ち/home/$USER/.ssh、有効なパスにすることができます。

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.