LoginSignup
12
21

More than 3 years have passed since last update.

Windows10環境でLinux環境を構築する(WSL+ホームディレクトリ変更+SSH接続)

Last updated at Posted at 2018-07-16

利用用途

リモートサーバーでの作業がメインだがたまにローカルで作業をした方が便利な時があり、そのための環境

背景

windows7環境からwindows10環境に移行した
windows7環境の時はvirtualbox+vagrantでローカルにubuntu環境を構築していた
windows10環境でもローカルにubuntu環境を構築したい

今回やること

  1. WSL(Windows Subsystem for Linux)を使ってubuntu環境を構築
  2. windows環境からファイルを操作できるようにホームディレクトリを変更する
  3. SSHで接続できるように環境を構築する

環境変更に伴う pros and cons

pros

  • 環境構築がvirtualboxより楽
  • windowsを起動するとubuntuも既に起動している
    • SSH接続するときにわざわざVMを起動させなくてよい

cons

  • 同じ環境を複数構築するのは大変そう(まだちゃんと調べられていない)
    • バージョンやOSが違うならそんなに手間はなさそう

環境構築手順

1. WSL(Windows Subsystem for Linux)を使ってubuntu環境を構築

手順①「スタートボタン」を右クリック
手順②「アプリと機能」をクリック
手順③「プログラムと機能」をクリック
手順④「Windowsの機能の有効化または無効化」をクリック
手順⑤「Windows Subsystem for Linux」をクリック

図1.png

手順⑥「microsoft store」を起動

図3.png

手順⑦「ubuntu」を検索
手順⑧ 任意のバージョンを選択してインストール
手順⑨ 初回起動で「ユーザ名」と「パスワード」を入力する

図4.png

2. windows環境からファイルを操作できるようにホームディレクトリを変更する

なぜ必要?

windows環境からubuntu環境にアクセスする方法はあるが、windows環境からubuntu環境配下で何か変更してしまうとubuntu環境が壊れてしまう。
ubuntu環境にはwindows環境の固定ドライブがマウントされている。
「C:」ドライブなら「/mnt/c」でubuntu環境からwindows環境へアクセスできる。
そこで、ubuntu環境での作業をwindows環境下で行うことでwindows環境から操作できるようにする

前提

  • windowsのDocumentsに「ubuntu」というディレクトリを作成し、そこを新ホームディレクトリとする
  • <username1> : windows のユーザ名
    • デスクトップまでのパスの例だと以下部分
    • C:\Users\<username1>\Desktop
  • <username2> : ubuntu のユーザ名(初回起動時に設定した名前)

手順

手順① ubuntuを起動して、デフォルトのホームディレクトリにあるファイル(設定ファイル)をwindows環境の新ホームディレクトリに移動する

$ cd
$ cp -p .* /mnt/c/Users/<username1>/Documents/ubuntu/

手順② 設定ファイルを開く

sudo vim /etc/passwd

手順③ 記載内容の変更

※変更前

<username2>:x:1000:1000:,,,:/home/<username2>:/bin/bash

※変更後

<username2>:x:1000:1000:,,,:/mnt/c/Users/<username1>/Documents/ubuntu:/bin/bash

手順④ ubuntuを再起動

3. rootユーザのパスワード設定

初期設定状態だとrootユーザに変更するためのパスワードが設定されていない。
初期設定で設定したユーザのパスワードでrootユーザに変更することもできるが、rootユーザのパスワードも設定しておく。

初期設定したユーザのパスワードでrootユーザに変更

sudo su -

rootユーザのパスワード設定
※上記コマンドでrootユーザに変更した後で設定する

passwd

今後は su - で設定したパスワードを入力するとrootユーザにログインできる

4. SSHで接続できるように環境を構築する

なぜ必要?

正直なくても問題ないが、リモートサーバーに接続しているターミナルエミュレーターと同様に操作できるようにするため

手順

①ubuntu環境でopenssh-serverを立ち上げる
2018/07/16時点では既にインストールされているopenssh-serverをそのまま使うとエラーになるので、一度アンインストールする

sudo apt-get remove --purge openssh-server
sudo apt-get update --fix-missing
sudo apt-get install openssh-server
sudo service ssh start

②windows起動時にssh serverを自動起動するように設定する
以下ファイルを作成する。
※「password」は初回起動時に設定したパスワード

startssh.vbs
set ws=wscript.createobject("wscript.shell")
ws.run "C:\Windows\System32\bash.exe -c 'echo 「password」 | sudo -S /etc/init.d/ssh start'",0

このファイルをwindowsのスタートアップフォルダに置く。

C:\Users\<username1>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

参考

12
21
0

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
12
21