Linux から Windows の OpenSSH Server に scp でファイルをコピーする

いままで Linux から Windows にファイルをコピーするとき smbclient を使っていたけど、Windows の「オプション機能」に「OpenSSH Server 」があったので使ってみた。
f:id:gae:20200712101709p:plain:w1158
Windowsの設定画面からインストールできるのでインストールが楽でいいですな。

ただ、使い方が独特だったので日記に。
↓ここに詳細なやり方が書いてある。

要するに、「管理者グループ」のアカウントについては

%USERPROFILE%\.ssh\authorized_keys

に書いてもダメで、

%PROGRAMDATA%\ssh\administrators_authorized_keys

に書く必要があった。
そして、このファイルの権限を以下のコマンドで設定する。

$acl = Get-Acl C:\ProgramData\ssh\administrators_authorized_keys
$acl.SetAccessRuleProtection($true, $false)
$administratorsRule = New-Object system.security.accesscontrol.filesystemaccessrule("Administrators","FullControl","Allow")
$systemRule = New-Object system.security.accesscontrol.filesystemaccessrule("SYSTEM","FullControl","Allow")
$acl.SetAccessRule($administratorsRule)
$acl.SetAccessRule($systemRule)
$acl | Set-Acl

これで Linux からパスワード無しで ssh でログインできるようになった。


つぎに、scpでドライブを指定してコピーする方法。この書き方でうまくいった。

scp hoge.txt my-windows-pc:/h:/hoges/

...と思ったんだけど、日本語のファイル名が文字化け。
ちょっと調べて解決断念したので、やっぱり smbclient を使い続けることに。