Windows10タブレットにMSYS2を入れてsshデーモンを立ち上げてみた
これまでのあらすじ
Windows10タブレット(DELL Venue 8 Pro)に、Linuxっぽい環境を構築するMSYS2と、現時点で最強と思われるBluetoothキーボードのMicrosoft Wedge Mobile Keyboardを組み合わせて、外出先でも快適にRubyのコードが書ける環境を手に入れました。
マイクロソフト キーボード Bluetooth対応/ワイヤレス/小型/テンキーレス - Wedge Mobile Keyboard U6R-00022
- 出版社/メーカー: マイクロソフト
- 発売日: 2012/09/07
- メディア: Personal Computers
- クリック: 6回
- この商品を含むブログ (8件) を見る
しかしながら自宅に帰ればメイン環境のMacBookAirがある訳で、残作業をわざわざタブレットでするのもめんどい訳です。
なので、タブレットでsshデーモンを動かしてMBAからリモートアクセスできる様にしました。
Windowsサービスなのでログインしてなくても電源を入れてればOKです。
sshデーモンの設定
まずはsshデーモンを設定していきましょう。
MSYS2 Shellを起動してください。
opensshのインストール
pacman -s openssh
Windowsサービス化
次に、Windowsにログインしなくてもsshできるようにサービス化します。
サービス化には、同じくWindowsでLinuxっぽいことをするcygwinの成果物を使用します。
どちらのコマンドもpacmanからインストール可能なのですが・・・
pacman -S cygrunsrv editrights
何故かeditrightsはMSYS2 64bit版にしかありません。
今回のターゲットは32bitなWindows10タブレットなので、ソースからコンパイルします。
editrightsのコンパイル
pacman -S make gcc tar curl -O http://ftp.jaist.ac.jp/pub/cygwin/x86/release/editrights/editrights-1.03-1-src.tar.xz tar xvf editrights-1.03-1-src.tar.xz tar xvf editrights-1.03-1.src/editrights-1.03.tar.bz2 cd editrights/ sed -i -e "s/stricmp/strcasecmp/g" main.c make make install
アカウントの追加
sshデーモンをWindowsサービス化するには特殊な権限を持つAdministratorsのアカウントが必要です。
sshdは内部でsetreuid()を呼びますが、Windowsサービスのユーザ("LocalService"とか)にはこれを呼ぶ権限がないためです。
こちらも、コマンドプロンプトを「管理者として実行」で作業します。
追加するユーザはcygrunsrvとします(パスワードもcygrunsrv)。
net user cygrunsrv cygrunsrv /add net localgroup Administrators cygrunsrv /add editrights -u cygrunsrv -a SeAssignPrimaryTokenPrivilege editrights -u cygrunsrv -a SeCreateTokenPrivilege editrights -u cygrunsrv -a SeTcbPrivilege editrights -u cygrunsrv -a SeServiceLogonRight
sshデーモンをサービスとして登録する
サービス登録に管理者権限が必要なので、MSYS2 Shellを「管理者として実行」して作業します。
cygrunsrv --install sshd -u cygrunsrv -w cygrunsrv -p /usr/bin/sshd -a -D cygeunsrv --start sshd