[ PC系セットアップ覚書 Top]

PC系セットアップ覚書

2011年まで「俺的な非 UN*X 環境をめざして」という題でしたが、 「UNIX系」と「非UNIX系」の区別がだんだん難しくなってきましたので、 あれこれ区別しないことにしました(^_^;


[前] Lubuntu on Mac mini (mid2007) 2021/02a

SSH/SCPをWin10で! 2020/10a

[Table of Contents]

Win10でOpenSSHが標準装備されてた!

ちょっと他の環境と間違えて Win10のコンソール(DOS窓?)上で ssh と入力しちゃったら‥え?! マジ??!! 使えるじゃん!!! (^o^)

 何かよくわからないですけど、Win10 はいまや OpenSSH が標準装備されてるんですね! いちおうググってみたら、なんか2017年10月に出た 「Windows 10 Fall Creators Update」からOpenSSHが標準装備されたみたいです。 すげーな、おい!

[Table of Contents]

SSHD インストール

Windows側からのアクセスだけじゃなく、Windows側がサーバやってくれると便利ですよね。 つい先月に、古いMacとWindows間のファイルのやりとりで 悩んだばかりでしたから、当然、すぐにそういう野望を思いつきます。

 ‥ということで探してみると、Win10に標準装備されているOpenSSHのサーバ側、 SSHD をインストールする方法などを見つけました。標準装備されているとはいっても サーバ側は標準装備からは外されているみたいです。けど「Windowsのオプション機能」 の中に含まれているためインストールは簡単で、

  • 「設定」→「アプリ」→「アプリと機能」→「オプション機能」→「+機能の追加」 →「OpenSSHサーバー」→「インストール」、
これでOKなんですね。すごいなー。 (参考: [ Windows 10にオンデマンド機能のOpenSSHサーバをインストールする方法 ] )

 それと。このサーバ機能(SSHDサービス)をPC起動時に自動起動するようにしておく 作業も必要かもしれません。やり方としては (スタートボタンというかWindowsボタンというかを右クリックすると出るメニューから) 「コンピュータの管理」にある「サービス」の 一覧から「OpenSSH SSH Server」の「プロパティ」を開いて、その「スタートアップの種類」 を「自動」にすればOK、かな?

なお。これらインストールの作業をするときは、かならず管理者権限をもつユーザとして 作業する必要があります。私は最初、管理者権限のないユーザでこの作業をやろうとして 非常に悩み、かなり時間をムダにしました(-_-)

[Table of Contents]

バッチ処理で SCP できない件

[Table of Contents]

CreateProcessW failed error:2

sshが使えるということはscpも使えるということで、おお、こりゃ便利だ、Windows上にある データなどのバックアップを取るうまい方法があまり思いつかなかったけど、scpが使えるのなら いろいろできるなあ‥なんて思い、さっそく scp を使った簡単なデータのバックアップ用 スクリプトを自作してみます。けど。いざスクリプトから呼び出す感じで使ってみると scp がエラー吐いて動作してくれません。こんなエラーです:

CreateProcessW failed error:2
posix_spawn: No such file or directory
何じゃこりゃ?! と思い、いろいろ調べてみると、私とほとんど同じ悩みを持った人がいました。 ‥けど、なんか解決策につながるコメントは見つかりません。うげー。

[Table of Contents]

TTY の問題?!

ちなみにコンソール(DOS窓?)からscpコマンドをキーボードで入力する限りでは、 とくに問題なく使えるんですよね。つまり不具合の原因はこれ:

「おそらくOpenSSHはターミナルが開いていないときはssh_askpass環境変数に設定されたプログラムからパスワードを取得するようになっており、win10だと当然ttyが存在しないためssh_askpassを参照するが設定されていないということだろう」 ( win10に同梱のOpenSSHでsshすると失敗するときの対処)
これだと思うんです。でも解決策が見当たらない‥。このページでは \DEV\TTY 作ることによる 対策を紹介してくれてますが、残念。バッチファイルの場合、これでは解決しません。んー。

[Table of Contents]

対策: 別のSCPを使おう!

‥ということで。あーでもない、こーでもない‥とさんざん試した末の解決策。それは 「Windows標準のSCPはあきらめて、どっからか SCP 持ってきて、それを使う」というもの。 そっちかい!! という感じなんですけど、そっちが早くて確実ですからね‥。

 今回は、個人的には昔懐かしい PuTTY というパッケージ に 入っている pscp.exe を使うことに しました。

ここから pscp.exe だけ単体でゲットしたら、それだけで使えます。楽だ‥。

 ただ実際に使ってみると、ポート番号を指定してやらないと default でサーバの 0 番ポートに アクセスに行って(案の定)アクセスを拒絶されてしまうんですよね。 これはどう設定したらいいのかな? とちょっと悩みましたけど、pscp 実行時に コマンドラインでポート番号を明示的に " -P 22 " と指定して済ますことにしました。 スクリプトから呼び出す形にしてるので、それがいちばん楽ですよね。

 ということで Windows でも普通に ssh/sshd が使えるようになってた! という話でした。 これであとはシステム標準で rsync/rsyncd が使えればなあ‥



[次] [FFmpeg覚書] 動画に動画を埋め込む 2020/09c