普通のUbuntuでは sudo update-rc.d ssh defaults
を実行すると自動起動するようになるけど、これやってもだめだった。
Ubuntu on WindowsはWindows起動時に勝手に起動してくれないみたい。
因みにsshサービスの状態は以下コマンドで調べられる。
service --status-all | grep ssh
以下をstartSshd.vbsというファイルに書いてスタートアップフォルダに配置するとsshdを自動起動できるようになった。
set ws=wscript.createobject("wscript.shell") ws.run "C:\Windows\System32\bash.exe -c 'sudo /etc/init.d/ssh start'",0
パスワードナシでsudoを実行する必要があるので、sudo visudoを実行し以下を追加する必要がある。 Username ALL=NOPASSWD: /etc/init.d/ssh
スタートアップフォルダは以下の場所にある。
C:\Users\Username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
いつのまにこんな深いところになったんだ。。
【追記】 もう一度環境構築したらなぜか上記startSshd.vbsを実行してもsshdが起動しなくなってしまった。 どうもvisudoのパスワードなしでsudo実行する設定が効いてないっぽい。ターミナルから sudo /etc/init.d/ssh startを実行したらパスワードなしで実行出来るんだけどな。。 以下のようにstdinからパスワードを渡すようにすると起動出来た。パスワードをベタに書くのはセキュリティ的にアレだけど。。
set ws=wscript.createobject("wscript.shell") ws.run "C:\Windows\System32\bash.exe -c 'echo mypassword | sudo -S /etc/init.d/ssh start'",0
参考: