web-dev-qa-db-ja.com

cygWinはRSAキーを使用してSSHで接続します。 ssh.exeは/home/user/.sshを作成できませんでした

Win XPを使用しており、RSAキーを使用してSSHでリモートホストに接続しようとしています。

CygWinがドキュメントと設定 dirをホームディレクトリとして認識することを調査しました

Z:\app\cwRsync\bin>cygpath -H
/cygdrive/c/Documents and Settings

Documents and Settings/user/.sshに.sshディレクトリを作成し、移動しましたknown_hostsid_rsaid_rsa.pubあります。

今、私はssh.exe経由でリモートホストに接続しようとしています

Z:\app\cwRsync\bin>ssh -p 22 [email protected]
Could not create directory '/home/user/.ssh'.
The authenticity of Host '[remotehost.com]:22 ([remotehost.com]:22)' can't be established.
RSA key fingerprint is f7:f4:2c:e0:c6:7e:d2:a4:45:70:63:df:bf:f2:84:46.
Are you sure you want to continue connecting (yes/no)?

私が間違っているのは何ですか? ssh.exeがディレクトリ/home/user/.sshを作成できなかったのはなぜですか?

ありがとうございました。

4
Kirzilla

.sshのアクセス許可を700に変更してみてください。これは、.sshが秘密鍵が保存される機密ディレクトリであるためです。

もう1つ試してみるのは、ln -s /cygdrive/c/Documents\ and\ Settings /home、したがって/ homeでの検索がドキュメントと設定にリダイレクトされます。

4
Kevin M

ああ男...私もこれに燃えた時間...

私にとっての解決策は次のとおりです。%USERPROFILE%を指すHOMEという名前のWindowsユーザー環境変数を設定します。

どうやら(ブラックボックスビュー)これにより、cygwin $ HOME環境変数が%USERPROFILE%Windows変数にきれいに解決され、すべてが洗浄されます。これにより、ユーザープロファイルのすべてのWindowsセキュリティも保持されるため、これまでに見た中で最高のソリューションになります(...そして最近いくつか見たことがあります!)

提案は次の場所にあります: http://hrivera99.blogspot.com.au/2013/09/openssh-failed-to-add-hosts-to-list-of.html

これが他の人々の人生から数時間を節約することを願っています!

3
djerrard

ローカルマシンのDocumentsand Settingsフォルダーに、フォルダーhome\<user>を作成します。何らかの理由で、cwRsyncはこれらのフォルダーを作成しません。 cygpathを変更しなかったので、C:\Program Files\cwRsync\home\<user>で作成しました。

2
churnd

ディレクトリジャンクションを作成することで、Win7ラップトップの問題を解決しました。管理者権限でコマンドツールを開き、次のコマンドを実行します。

mklink /j "C:\Program Files (x86)\cwRsync\home" "c:\Users"

理由:

sshは、次の式で指定されたWindowsディレクトリC:\ Program Files(x86)\ cwRsync\home\user_name.sshである/home/user_name/.sshcygwinディレクトリを想定しています。

cygpath -w /home/user_name/.ssh

Windowsユーザーは、ユーザーディレクトリの下に自分のホームディレクトリがあることを期待しています。C:\ Users\user_name C:\ Program Files(x86)\ cwRsync\homeからC:\ Usersへのリンクがトリックになります。

注:これはシンボリックリンク:mklink/dでも機能する可能性がありますが、テストしていません。

1
zizou13

必要なhome/adminディレクトリを作成しただけです。

go.cmd

@ECHO OFF
SETLOCAL
SET PATH=c:\rsynclibrary\bin;c:\rsynclibrary\lib
mkdir c:\rsynclibrary\home
mkdir c:\rsynclibrary\home\admin
c:
cd \rsynclibrary
rsync -rtve "ssh -i ssh_key" --include-from=library.txt /cygdrive/c/ ...

sshは.sshディレクトリを作成し、c:\ rsynclibrary\home\admin\.sshにknown_hostsを作成します

よく働く。

0
Pierre M

すでに作成されているため、作成できません。権限の問題が疑われます。 ~~/.sshおよび~/.ssh内のファイルに対する権限は何ですか?

cwrsyncフォルダー内に2つの新しいフォルダーを作成することで、この警告を解決しました。

<CWRSYNC FOLDER>/home/<USERNAME>

(最初にhomeを作成してから、ユーザー名のサブフォルダーを作成します。)

C:\Users\USERNAMEフォルダへのディレクトリジャンクション(シンボリックリンクと同様)を作成することもできます。これを行う方法については、@ zizou13の回答を参照してください。

0
Simon East

これは私のために働きます

前にこれを確認してください:

echo %HOME%
echo %USERPROFILE%

その後:

set HOME=%USERPROFILE%
rsync .....
0
José Ibañez