web-dev-qa-db-ja.com

MinGW MSYS sshエラー:ディレクトリ '/home/<username>/.ssh'を作成できませんでした

与えられた指示に従って、グラフィカルユーザーインターフェイスインストーラー(推奨されるアプローチ)を使用して、Windows 7 64ビットに新しいMinGWインストールをインストールしました ここ そしてデフォルトオプションを維持します(つまり、C:\ MinGW)-うまくいけば、手順を見逃したり、何らかの方法で物事を台無しにすることはありません。

ただし、sshコマンドを実行すると、次のエラーが発生します。

C:\ Users\myusername> sshusername@Host
ディレクトリ '/home/myusername/.ssh'を作成できませんでした。
ホスト 'ホストHost-ip)'の信頼性を確立できません。
RSAキーのフィンガープリントはフィンガープリントです。
接続を続行してもよろしいですか(はい/いいえ)?はい
既知のホストのリストにホストを追加できませんでした(/ home /myusername/。ssh/known_hosts)。

ですから、基本的には毎回接続を確認する必要があります。
なぜこれが発生し、どうすれば修正できますか?

2
import this

試行錯誤の末、問題の解決策を見つけました。

自動化されたソリューション(急いで)

  1. (your-MinGW-installation-directory)\ msys\1.に移動します。
    (私の場合、これもデフォルトですが、C:\ MinGW\msys\1.0)になります。
  2. msys.batを実行します。

これにより、MinGW Shellが開始され、パスが作成されます
(your-MinGW-installation-directory)\ msys\1.0\home \(your-username) ==
自動的にsshが正常に機能するようになりました。


手動ソリューション(基本的に手作業で必要なパスを作成します):

  1. (your-MinGW-installation-directory)\ msys\1.に移動します。
  2. homeディレクトリを作成します。
  3. homeディレクトリ内に、ユーザー名と同じ名前のディレクトリを作成します。

だから、今の道
(your-MinGW-installation-directory)\ msys\1.0\home \(your-username) ==
が利用可能であり、sshは問題なく動作するはずです。


すべてがうまくいった場合に取得する必要があるものは次のとおりです。

C:\ Users\myusername> sshusername@Host
ホスト 'ホスト(Host-ip)'の信頼性を確立できません。
RSAキーのフィンガープリントはフィンガープリントです。
接続を続行してもよろしいですか(はい/いいえ)?はい
警告:既知のホストのリストに「Host、host-ip」(RSA)を恒久的に追加しました。


MinGWシェルは必要なパスを作成できるので(Windows UACが何かについてしつこくすることなく)、これは許可とは何の関係もないと思います。これはおそらくMinGWのインストールの省略です。

2
import this

WindowsでSSHを有効にしてknown_hostsファイルを更新し、常にプロンプ​​トが表示されないようにする方法

Are you sure you want to continue connecting (yes/no)? yes
Failed to add the Host to the list of known hosts 
(/home/myusername/.ssh/known_hosts).

私は一日中、Windows用のgit-bash(msy​​sの子孫であると私が信じているmingw64を使用していると私は信じています)のためにこれを理解しようと試みました。パーミッションエラーだと思いますが、実際にWindowsによって制御されているフォルダーまたはファイルのUnixパーミッション(つまり、chmod xxx ...)を変更する方法を示すものは見つかりませんでした。次のいずれも機能しませんでした。

  • Windowsユーザーのホームディレクトリに~/.sshフォルダを作成する(cd ~ --> C:\User\username
  • Git-bashルートディレクトリに/home/username/.sshフォルダを作成します(cd / --> C:\Program Files\Git
  • 両方の場所に.ssh/known_hostsファイルを作成し、Windowsのアクセス許可をフルアクセスに変更します

これはうまくいきました:

  • ファイルの行を変更するC:\Program Files\Git\etc\nsswitch.conf

    From: db_home: env windows cygwin desc
      To: db_home:     windows cygwin desc
    

なぜ???何も思いつきません!!

0
Sue Parker

msys2を使用していて、同じエラーが発生した場合:

ファイル/etc/nsswitch.confの行を次のように変更します。

db_home: windows cygwin desc

(この回答から)

0
TT--

.ssh/known_hostsファイルにrsaキーを手動で追加します

なぜそれが起こっているのかわからない、そもそもファイルを作成することさえできない場合の許可の問題だと思います

0
mrwhale