web-dev-qa-db-ja.com

sshがCygwinで誤ったホームディレクトリを使用する

$ ssh [email protected]

Could not create directory'/cygdrive/c/Documents and Settings/vidar kongsli/.ssh'.
The authenticity of Host 'login.somehost.no (...)' can't be established.
RSA key fingerprint is ....
Are you sure you want to continue connecting (yes/no)? no
Host key verification failed.

$ set | grep HOME

HOME=/cygdrive/d/home/vidar
HOMEDRIVE=C:
HOMEPATH=/cygdrive/d/home/vidar

$ ls ~/.ssh

id_rsa  id_rsa.pub

Sshが〜/ .sshを見つけようとするときに$ HOME環境変数を使用しない理由は何ですか?

(編集:固定フォーマット)

12
Vidar Kongsli

見て /etc/passwd。そこにあるエントリが、予想されるホームディレクトリと一致することを確認してください。これは、ユーザーのエントリの最後から2番目のフィールドです。

9
Ronald Blaschke

もしあなたの $HOME変数が設定されていますが、sshがそれを認識していません。この行を/etc/nsswitch.conf

db_home: /%H

これにより、/ etc/passwdファイルが存在しなくてもCygwinホームディレクトリが設定されます。

4
Oliver Crow

/etc/nsswitch.conf:

db_home:  windows

db_home設定 を参照してください。これはCygwinにWindowsを使用するように指示します%USERPROFILE%ディレクトリをCygwin $ HOMEとして。

これは、たとえば、git(GitHub Enterprise)とSSHの間で同じSSHキーをさまざまなローカルUnix/Linuxシステムに共有する場合に必要です。

設定%HOME% OSレベルでは機能しませんでした($HOME in bashは設定を正しく反映します)。

元の質問から、SSHがWindowsホームディレクトリを更新しようとしていることがわかります。Vidarの古いバージョンのWindowsではC:\Documents and Settings\vidar kongsli。現在のバージョン(7+、私は思う)では、同等のものはC:\Users\%USERNAME%(または、WindowsがC:にインストールされていない場合は、%SystemDrive%\Users\%USERNAME%)。

2
Charlie Reitzel

変数HOMEはエクスポートされますか?試してください:export HOME次にsshを繰り返します。

0
Greg Hewgill

db_home/etc/nsswitch.confを家のパスに設定します。これは、MSYS2によるメソッド 推奨 です。

HOME環境変数も追加 works

Git-for-Windowsはenvdb_homeにインクルードし、HOME bash変数を読み取る必要がありますが、それは nreliable です。

0
VarunAgw