Cygwinのsshが%HOME%/.ssh/config
にある私の設定ファイルを読み取っていません。
Cygwinをインストールしていますが、WindowsではDOSのような環境を使用することを好みます。 PATH
にCygwinbinディレクトリがあり、Cygwinの外部でUnixライクなコマンドをよく使用します。
私はCygwinにログイン(または.bashrcを実行)していないので、コマンドがWindowsによって設定された環境変数を使用することを期待していました。 HOME
はC:\Users\Vince
に設定されており、sshがC:\Users\Vince\.ssh\config
で構成ファイルを見つけることを期待していましたが、-F
オプションを使用して指示しない限りそれは起こりません。あっち見て。
Cygwinのsshが設定ファイルを探している場所を確認するにはどうすればよいですか?それは変更できますか?
ありがとうございました。
コメントでのQ&Aに基づいた私の答えは次のとおりです。
デフォルトでは、Cygwinは/home/User
にユーザーホームディレクトリを作成します。Windowsシステムでは、ホームディレクトリは別の場所にあります-
これを修正するには、/etc/nsswitch.conf
を開き、この行で編集します
db_home: windows
すべてのCygwinターミナルセッションを閉じて、再起動します。ここで再びecho $HOME
になり、ウィンドウ%HOME%
に設定され、/home
にあるものを使用しなくなったことがわかります。
編集
削除する必要がある場合もあります
/ etc/passwd
/etc/group
これはウィンドウに延期されるはずなので。
Cygwin(cygrunsrv)が正しくインストールされているかどうかを確認するには、C:\ cygwin\Cygwin.batを実行し、次のコマンドを実行します。
cygrunsrv -h
Cygwinが正しくインストールされている場合、すべてのCygwinヘルプオプションが画面に表示されます。ただし、このコマンドがエラーメッセージを返す場合は、Cygwinを再インストールする必要がある場合があります。
SSHDサービスを構成するには、C:\ cygwin\Cygwin.batを実行し、次のコマンドを実行します。
ssh-Host-config
コマンドを実行すると、次の質問が表示されます。
この時点で、同じ名前、つまりcyg_serverを使用する場合は、noと入力します。次に、次の質問が表示されます。
ただし、別の名前を使用する場合は、「はい」と入力します。次に、次の質問が表示されます。
構成が成功すると、次のメッセージが表示されます。
ホスト構成が完了しました。楽しんで!
ここでの問題の一部は、$ HOMEに割り当てられたフラクチャされたオーバーロードされた意味です。 CygwinとWindowsを混在させているときに、すべてのユーザー情報を1つのディレクトリにマッシュしようとするのは、悪い考え(tm)です。
競合しない限り、複数の「システム」を使用する必要はありません。それらをあまりにも密接に共存させようとすると、解決できない問題が発生します。これが、bash、ksh、zshが独自のプロファイルを持っている理由であり、100%互換性はありません。
CYGWIN用に別の/ home/USERNAMEディレクトリを用意することをお勧めします。互換性があり、共有する必要があることがわかっている場合は、then両方の世界からアクセスできるようにするための手順を実行できます。 Cygwinを使い始めたばかりの場合は、Windowsで使いすぎないようにする必要があります。
通常、WindowsにはHOMEディレクトリがありませんが、一部のソフトウェアはそれを探しています。問題はあなたが本当に2つの家を持っているということです。慎重に踊ります。