なんでWSLでわざわざやるんですか?
ssh
鍵作ってなかったので、まずは作ります。
$ ssh-keygen -t rsa -b 4096 -C "mail@address.com"
鍵を渡します。ついでに.ssh/config
も書いておきます。
Host server HostName server.address.jp Username username
そしたら、一回ssh
できるか確認して
$ ssh server Bad owner or permissions on /home/hoge/.ssh/config
ごめんやん。
$ ls -la ~/.ssh ... -rw-rw-rw- 1 hoge hoge ..... config
権限合わせます。
$ chmod 700 ~/.ssh/config $ ssh server
OK.
出来たら、WSL戻ってきて鍵渡してssh確認して
$ ssh-copy-id server $ ssh server
OK.
Xサーバのアプリケーション
ってそもそもWSL上で動くんかい? まず入れよう。
$ sudo apt update $ sudo apt install x11-apps
xclock
とか試そう。
$ xclock Error: Can't open display:
そりゃそうか。Windows上でXサーバを動くやつを入れないとね。
いろいろあるけど、VcXsrvを入れます。
インストールすると、デスクトップに"XLaunch"という名前のショートカットがあるので、それを起動します。
起動するとタスクバーに"X"っていうのが出まして、マウスオーバーするとhostname:0.0 x clients
と表示されるのを確認。
WSL側で環境変数を設定する必要があるので、これをもとに書きます。
面倒くさいので、.bashrc
に入れます。
$ echo 'export DISPLAY=localhost:0.0' >> ~/.bashrc $ source ~/.bashrc
xclock
が動いているのを確認して、モーマンタイ。
$ xclock
ssh + X転送
オプションで-X
つけるだけ。
VcXsrv起動状態で、ssh -X
します。
$ ssh -X server
$ xclock
xclockが動いているのを確認して、おわり。
オマケ (WSL日本語化)
Warning: locale not supported by C library, locale unchanged
っていう警告がよく出ます。
OSの言語設定を変えればよいのですが、WSLでは標準でja_JP.UTF8
に設定出来ません。
$ local -a
つまるところ、この中に入っているものじゃないと、環境変数LANG
にja_JP.UTF8
を設定しても意味がありません。
だから、入れます。
$ sudo apt install language-pack-ja
入ったら、セットします。
$ sudo update-locale LANG=ja_JP.UTF8
WSLを再起動して、date
コマンドなどを打って日本語化していれば成功です。
$ date 2020年 4月 29日 水曜日 22:52:51 JST
おわり