web-dev-qa-db-ja.com

WSLとWindowsの間でSSHキーを共有できますか?

Windows(LinuxまたはWSL用のWindowsサブシステム)でPowershellからBashに移行しようとしています。 GITを使用する目的で、C:/Users/User/.sshにSSHキーを設定しました。次にBashにログインし、両方のシェルから同じsshキーを(理論的には)使用するためにln -s /mnt/c/Users/User/.ssh/ ~/.ssh/のシンボリックリンクを作成しました。

ただし、gitを実行すると、常にエラーが発生します:Bad owner or permissions on /home/user/.ssh/config。私は何が間違っているのですか?

6
bluppfisk

私は何が間違っているのですか?

SSHには秘密鍵に対する適切なアクセス許可が必要であり、別のファイルシステム(Windows)にシンボリックリンクしている間はそれを実現できません。 sshのマニュアルページでは、次のように明確に説明されています。

~/.ssh/id_rsa

認証用の秘密鍵が含まれています。これらのファイルには機密データが含まれており、ユーザーは読み取り可能である必要がありますが、他のユーザーはアクセスできません(読み取り/書き込み/実行)。 sshは、他の人がアクセスできる場合、秘密鍵ファイルを単に無視します。

「キーを共有」する場合は、おそらく秘密キーをコピーして適切なアクセス許可を設定できます。

3
Jakuje

DrvFSファイルシステムとmetadataオプションを使用してWindowsファイルシステムをマウントする必要があります。これにより、Linuxのアクセス許可をファイルメタデータに保存してWindowsファイルと共存させることができます。

Sudo umount /mnt/c Sudo mount -t drvfs C: /mnt/c -o metadata

これにより、両方のオペレーティングシステムでSSHキーを使用できるようになります。

さらに読む: https://blogs.msdn.Microsoft.com/commandline/2018/01/12/chmod-chown-wsl-improvements/

WSLを構成して起動時に毎回この設定を適用する方法の詳細: https://blogs.msdn.Microsoft.com/commandline/2018/02/07/automatically-configuring- wsl /

3
ChadT