Win XPを使用しており、RSAキーを使用してSSHでリモートホストに接続しようとしています。
CygWinがドキュメントと設定 dirをホームディレクトリとして認識することを調査しました
Z:\app\cwRsync\bin>cygpath -H
/cygdrive/c/Documents and Settings
Documents and Settings/user/.sshに.sshディレクトリを作成し、移動しましたknown_hosts、id_rsa、id_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を作成できなかったのはなぜですか?
ありがとうございました。
.sshのアクセス許可を700に変更してみてください。これは、.sshが秘密鍵が保存される機密ディレクトリであるためです。
もう1つ試してみるのは、ln -s /cygdrive/c/Documents\ and\ Settings /home
、したがって/ homeでの検索がドキュメントと設定にリダイレクトされます。
ああ男...私もこれに燃えた時間...
私にとっての解決策は次のとおりです。%USERPROFILE%を指すHOMEという名前のWindowsユーザー環境変数を設定します。
どうやら(ブラックボックスビュー)これにより、cygwin $ HOME環境変数が%USERPROFILE%Windows変数にきれいに解決され、すべてが洗浄されます。これにより、ユーザープロファイルのすべてのWindowsセキュリティも保持されるため、これまでに見た中で最高のソリューションになります(...そして最近いくつか見たことがあります!)
提案は次の場所にあります: http://hrivera99.blogspot.com.au/2013/09/openssh-failed-to-add-hosts-to-list-of.html
これが他の人々の人生から数時間を節約することを願っています!
ローカルマシンのDocumentsand Settingsフォルダーに、フォルダーhome\<user>
を作成します。何らかの理由で、cwRsyncはこれらのフォルダーを作成しません。 cygpathを変更しなかったので、C:\Program Files\cwRsync\home\<user>
で作成しました。
ディレクトリジャンクションを作成することで、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でも機能する可能性がありますが、テストしていません。
必要なhome/adminディレクトリを作成しただけです。
@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を作成します
よく働く。
すでに作成されているため、作成できません。権限の問題が疑われます。 ~
、~/.ssh
および~/.ssh
内のファイルに対する権限は何ですか?
cwrsync
フォルダー内に2つの新しいフォルダーを作成することで、この警告を解決しました。
<CWRSYNC FOLDER>/home/<USERNAME>
(最初にhome
を作成してから、ユーザー名のサブフォルダーを作成します。)
C:\Users\USERNAME
フォルダへのディレクトリジャンクション(シンボリックリンクと同様)を作成することもできます。これを行う方法については、@ zizou13の回答を参照してください。
これは私のために働きます
前にこれを確認してください:
echo %HOME%
echo %USERPROFILE%
その後:
set HOME=%USERPROFILE%
rsync .....