sshはCygwinで間違ったホームディレクトリを使用します


12
$ ssh usaname@login.somehost.no

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環境変数を使用しない理由は何ですか?

(編集:フォーマットを修正)

ssh  cygwin 

回答:


9

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


4

あなたの場合は$HOME、変数が設定されていますが、sshはそれを認識していない、このラインを置きます/etc/nsswitch.conf

db_home: /%H

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


cygwinをインストールする前に環境変数に設定HOME%USERPROFIEL%ました。したがって... / home / <myusername>は作成されていません(/etc/passwd cannot be found)。また、%USERPROFILE%でsshキーを使用できません。db_home: /%H問題を完全に修正します。どうもありがとう!
マルスロー

2

/etc/nsswitch.conf内:

db_home:  windows

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

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

%HOME%OSレベルでの設定は機能しませんでした($HOMEbashで設定が正しく反映されている場合でも)。

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



0

あなたの家へのパスに設定db_home/etc/nsswitch.confます。これは、MSYS2が推奨する方法です。

HOME環境変数の追加も機能します。

Git-for-Windowsにenvdb_homeHOMEbash変数を読み取る必要のあるinが含まれていますが、信頼性低くなります。


1
編集方法は?db_homeは何に設定しましたか?
アンドリューシュルマン

@AndrewSchulmanホームディレクトリにしたいディレクトリへ?
VarunAgw

1
うわー!これは多くの有用な情報です。編集@ go2nullをありがとう:)
VarunAgw

この回答には、「推奨」リンクバグが推奨する内容は実際にはリストされていません。リンクされたバグは言う:db_home: windows cygwin desc
ゴードン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.