39
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WSLでもgitでsshを使いたい

Last updated at Posted at 2018-10-06

背景

WSLで.ssh/configを設定してsshを実行したとき,

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '/mnt/c/ubuntu/home/ユーザ/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/mnt/c/ubuntu/home/ユーザ/.ssh/id_rsa": bad permissions
git@ssh.github.com: Permission denied (publickey).

のようなエラーが発生して困ったときのメモ.

状況

WSLにおけるホームディレクトリをデフォルトの"/home/ユーザ名"ではなくwindows側の"/mnt/c/ubuntu/home/ユーザ名"にしている.

解決策

時間がない人は本命解決策2を見てください

解決策1

このようなエラーが出たときはまず最初にchmod 600 ~/.ssh/configとすれば解決する.

しかし,これはホームディレクトリがlinux側の場合のみ有効である.

今回はwindows側にホームディレクトリがあるため,これではだめ.(そもそもwindowsは他の人からアクセスされることを想定していないため,パーミッションとかフルオープン)

本命の解決策2

追記

シンボリックリンクでも解決することがわかったので
後ろの本命の解決策3で解説しています.

  • まず,デフォルト(linux側)のホームディレクトリにいったん移動します.
$ cd /home/ユーザ名

ここで,新しくsshkeyを生成します.(古いやつコピーしても大丈夫だと思いますが,試していません)

  • sshkey生成
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

生成されたsshkeyが以下のディレクトリにあることを確認しましょう
/home/ユーザ名/.ssh/id_rsa

このファイルのパーミッションを確認してみるとしっかり制限されていることがわかります.

$ ls -l /home/ユーザ名/.ssh
total 8
-rw------- 1 ユーザ名 ユーザ名 1675 Oct  6 00:40 id_rsa
-rw-r--r-- 1 ユーザ名 ユーザ名  402 Oct  6 00:40 id_rsa.pub
-rw-r--r-- 1 ユーザ名 ユーザ名  884 Oct  6 00:45 known_hosts
  • githubに生成したid_rsa.pubを登録します.
    ここでは詳細については割愛します.

  • 次に,windows側のホームディレクトリに戻り,
    先程生成したid_rsaの方を読み込めるように~/.bashrc追記します.

~/.bashrc
#SSH
eval `ssh-agent` > /dev/null
ssh-add /home/ユーザ名/.ssh/id_rsa >& /dev/null

ここで> /dev/nullはターミナル起動時にsshkeyが追加されたことお知らせするメッセージを表示しないようにつけました.

あとは,bashrcを再読込するだけでgitのsshが使えるようになっています.

$ source ~/.bashrc

以上です.

本命の解説3

linux側でssh-keyを生成するところまでは一緒です.

変更点は,.bashrcに追加しないでシンボリックリンクを作成する点です.

  • linux側への.sshのシンボリックリンクを作成
$ ln -s /home/ユーザ名/.ssh ~/

このように設定することで勝手にlinux側の.sshを見に行くので今まで通り使えるようになると思います.

39
36
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
39
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?