私はsshインスタンスを使おうとしていました、そして、私はこのエラーを受け取りました:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for 'privkey.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "privkey.pem": bad permissions
Permission denied (publickey).
これは奇妙です。私は 'chmod'コマンドを使用して許可を変更しようとしましたが、それはうまくいかないようでした。 bashはコマンドが登録されているような印象を与えましたが、私はキーのパーミッションをチェックしました、そしてそれはまだ777にありました。そうですね。
Windowsファイルシステム内のファイルを参照している場合、それらはデフォルトではLinuxのアクセス権を保持しません。しかし、それを可能にする方法があります。 /etc/wsl.conf
を編集または作成し(Sudo
を使用)、以下を追加します。
[automount]
options = "metadata"
すべてのWSLインスタンスをシャットダウンしてインスタンスを再起動すると、chmod
の変更は保持されます。
Windowsファイルシステムの秘密鍵(/ mnt /以下)はありますか? Windows上のUbuntu上のBash上でchmodを使用して、Windowsのファイルシステム上のファイルのアクセス権を変更することはできません。秘密鍵を自分のWSLホームディレクトリ(〜)にコピーして、そこで作成する必要があります。
ここでいくつかの議論: https://github.com/Microsoft/WSL/issues/81
これを処理する正しい方法:
/etc/wsl.conf
という名前のファイルを作成し、以下を含むように編集します。 [automount]
enabled = true
root = /mnt/
options = "metadata,umask=22,fmask=11"
上記の各パラメータの意味を理解するには、msdnのこの記事を参照してください。 https://blogs.msdn.Microsoft.com/commandline/2018/02/07/automatically-configuring-wsl/
これで設定は完了しました。Windows内のファイルのアクセス権を/ mnt/c /から変更しても、WSLの「メタデータ」機能を通じてLinuxサブシステムに正しく反映されます。
WSLの設定はWSLの起動時に常に正しくマウントされます。