本日は昨日の続きであるOpenSSH for Windowsの話と、Windows環境のCUIでリモート操作するときの注意点についてのご報告です。
まだご覧になっていない方は昨日の記事もどうぞ
リンク:(1/2)DOSコマンドでリモートログインしたい場合 - treedown’s Report
OpenSSH for Windows
フリーソフトで提供されている(サードパーティー製)Windows用のOpenSSH.exeサーバ&クライアントの話ではありません。Microsoftが提供を予定しているOpenSSH for Windowsの方です。
Linux界隈では歴史の長いSSH接続ですが、Windowsで使えるようになったのはつい最近(2015年)です。ようやくMicrosoftがOpenSSHをWindowsに移植するという発表をしてプレリリース版が2015年に提供され始めました。
OpenSSH for Windows Update | Windows PowerShell Blog
この記事を記載している現在ではまだ正式版は公開されていません。まだプレリリース段階ですので、業務環境に投入して実際の業務環境に利用するというのはちょっとはばかられます。
気になる方は以下リンクでどうぞ
これだけはまだ試していない/使っていない状況です。すいません。
一番課題に感じているのは、定期的に発見されるセキュリティホールへのアップデートをどのように実行するか、という点です。要するにアップデート/バージョンアップをどうするか、という点で解決策がうまく見いだせていない自分が居ます。
サーバなら手動でアップデート適用してもいいのですが、PCに展開するとなると必然的にサイレントないしバックグラウンドでのアップデート実行が必須ですが、上述の
PSEXECもPowershellもWindowsUpdateで最低限のアップデートが実行されるのに対して、WindowsのOpenSSHは.zipファイルを展開してファイルを上書き?のように見えます。
2016年上半期で正式版のリリースが予定されているので、正式版が公開されたのち試してみようかと思っています。プレリリース版から仕様が変わることもありますし。
ちなみに、このOpenSSHは暗号化方式にWindows Crypt APIを使用してWindowsサービスとして動作するそうです。
2016年後半くらいから、Windows全台にOpenSSHを展開してSSH経由でLinuxもWindowsも両方管理ができるという時代が来るのでしょうか?楽しみです。
これらを利用するのはあくまでCUIの出力
上述の3つの選択肢を利用するのは、あくまでも「コマンドの出力結果」が欲しい場合に利用する、という点は注意が必要です。
GUI の出力結果(あるいはGUIを起動した操作)が必要な場合にはリモートデスクトップ(ないしVNC)なりRemoteAppなりを利用して操作をする必要 があります。つまりコマンドベースで「inetcpl.cplを実行してリモート先の設定操作を実行」というようなことはできませんし 「services.msc」や「regedit」をコマンドで実行してリモート側の操作を実行することもできません。これらを実行するには実際にリモー ト操作側のGUIへ接続してからでなければ実行できない、ということです。(ただし「services.msc」や「regedit」単体でリモート管理 は可能なのでローカルPCであらかじめ起動しておき、リモート側へ接続する、ということは可能です。)
つまり、具体的に言えば、ipconfigでNICの状態を確認するとかnetstatで通信の状態を確認する、といった「CUIで命令を発行してDOS窓に出力結果が表示される」コマンドを実行するための技術だということを前提として利用する必要があります。
具体的には、taskmgrをコマンドプロンプトで実行してプロセス一覧を見る、ということはできないので、「tasklist」コマンドを実行してプロセス一覧を見る必要があります。
こ れは何を意味するかといいますと、Linuxで自然に実行している「viでconfigファイル編集」というのもちょっと一考しないといけないということ になります。つまり、Windows標準のエディタであるメモ帳はGUIなので使えないからEDITコマンドで編集をする必要があるのですが、EDITコ マンドは低機能なのとQBASIC.EXEを追加しないといけない、という点が注意点です。(昔のWindowsDOS窓では外部コマンドとしてEDITコマンドが用意されていたんですけどね、いつの間にかなくなったみたいですね。)
ファイルの中身を見るにしても、TYPEコマンドしかありませ ん。「TYPE %ファイル名% | more」のように使います。
edlin使いづらいですよね。フリーソフトvim.exeなどを用意したほうがよさそうです。この辺は近いうちに記事にしてみようと思います。
このようにLinuxではCUIのみでも容易なことをDOSだといろいろ追加しなきゃいけない、という点は注意しておく必要 があります。
最近はPowershellの機能向上が目覚ましいので、cmd.exeという時代は終わりを迎えつつあるのかもしれません。ここにOpenSSHの技術が投入されるということで、どのような形で実装されるか個人的には非常に興味深いです。