自宅のサーバーにしていたデスクトップがしょぼいサーバーとしてしか役目がないのはもったいないような気がしたので、今までのサーバーをそのままにUbuntuからWindowsにOSだけ移行しようと、軽い気持ちで考えました。
しょうもないエラーでつまずいて6時間ほど粘ったのでみなさんがこの思いをしないようにと微力ながらまとめさせていただきます。
症状
あなたもおそらくPowerShell/Win32-OpenSSHをインストールしようと思ってこのページに辿りついたのではないかと思います。
そしてインストールを終え、sshdの設定を終え、いざ起動して快適なSSH生活が待っていると確信しながらEnterキーを押したあなたは絶望します。
> net start sshd
sshd サービスを開始します...
sshd サービスを開始できませんでした。
システム エラーが発生しました。
システム エラー 1067 が発生しました。
プロセスを途中で強制終了しました。
結論
原因はしょうもないので結論から申し上げます。
> C:\path\to\OpenSSH\sshd.exe
これを実行してみてください
> C:\path\to\OpenSSH\sshd.exe
. must be owned by root and not group or world-writable.
おそらくこんなようなエラーが出てくると思います。
出てこない方は、ごめんなさい。私はお力になれないようです。
最初の「.」はsshd.exeからの相対パスだと思います。
つまり、C:\path\to\OpenSSH のアクセス権がユルすぎますよ~ってことが言いたいようでした。
そうなればあとは簡単、OpenSSHのフォルダを右クリックして、プロパティを開きます。
[セキュリティ]タブからAdministrator以外の書き込み権限を拒否にチェックを入れて剥奪してやってください。
適用をクリックしたらもう一度!
> net start sshd
sshd サービスを開始します。
sshd サービスは正常に開始されました。
ありがとうございま~~っす!!
紆余曲折と愚痴
こんなことに6時間もかけてしまったんですね。
何をしてたかって、ネットの成功例を見ながら一度インストールしたOpenSSHを丸ごとインストールしなおしたり、GUIでインストールできるmls-software.comに逃げようとして「SSH1はもうつかえないよ」と言われたり、もう大変でした。
そもそもなんでnet startのエラーはsshdのエラーメッセージを握り潰して1067とかいうググってもおいしい情報の出ないエラーコードを吐くようにしてしまったんでしょう!
この6時間はいい授業料でした。
Windowsにまたすこし強くなれたので、うれしいです…