AA研514ばんの日誌

2022-04-06

winのopensshサーバの方のメモ

sshで繋げるのはFreeBSDベース(をvmware内で動かしている)の作業機とのことだったんで
Windows機の方に繋げるのは、だいぶ前にちょっとやったくらいで放置してて
そういやそっちでも繋げたよなあとサーバ立ち上げたが
なんかうまく繋がらなくて手間取ったんでメモ
導入自体は、クライアント同様に、普通に設定のオプション機能だかなんだかの追加のとこで。
もうわざわざ書く程のことでもないので省略。
導入後は、サーバの方は自動起動しない設定なので
サービスの方からGUIで設定するか
powershell(管理者起動で)から
> Set-Service -Name sshd -StartupType 'Automatic'
TABキーでパラメータ含め補完できるんで、ある程度打ち込んでからTAB押せば
間違いなくセットできるだろう。
あと、調べてたときに、どのシェルプログラムで入るか指定できるというのを読んだので
(指定してないとcmd.exeで動く。そこからpowershellとか呼んでも構わんけど面倒なら設定しとくといい)
> New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value [シェルプログラムのファイル名をフルパス記述で] -PropertyType String -Force
ちなみに、powershellなら
> Get-Command powershell | Format-Table -autosize -wrap
これでフルパスのファイル名が分かる。
つーか、だいたいの場所分かったら、-Value まで打ち込んだ後に、パス名をTAB補完しながら入れていけばよい。
pwsh(7.x)も、これで調べてDefaultShell指定できた。
あとは、「ssh-keygen -t rsa」 で鍵ペア作成して
「~/.ssh/authorized_keys」に「id_rsa.pub」(鍵ペアの公開鍵の方のファイル)の内容を付け足しておくか
そのままリネームでもして、所有者と権限を自分だけにしときゃいいだろと。
そしたら、localhostでテストで繋げようとしても繋がらん。
(ssh ユーザー名@localhost -i ~/.ssh/id_rsa とかで)
-v 付きで眺めてみると、まあ、Permissionがどうこうということで
公開鍵のファイル(authorized_keys)の権限がおかしいんだろうと。
んなわけないよなあとチェックしなおしたが、自分以外なしにしてあるし。
いろいろ考えて、ふと、もしかして、administratorsに読み取り属性つけておかんといかんのか?と気づく。
属性云々は、コマンドで入れるより、エクスプローラーのファイルプロパティから
セキュリティの詳細設定開いて付ける方が手っ取り早いと思うんで
(chownやchmod使えるようにしてたら、そっちがいいだろうけど)
administratorsを追加、読み取り・読み取りと実行の許可をつけて
あらためて、sshでlocalhost宛に繋げにいったら普通に繋がった。
それ以外の設定とかは、PC-UNIX系と同じなんで割愛。
(追記)
Windowsのオプション機能の方で追加したOpenSSHは8.1ベースのをあれこれしたやつで
(ssh -V で確認できる)
それでも普通に使う分には良いのだろうが
「Ctrl+Space」「Ctrl+@」がちゃんと効かない問題があり
ssh接続で立ち上げたFreeBSD機の方でemacsを起動すると
まともに使えないということになり、不便だなと思っていたら
githubの方に、Win32版のOpenSSHがあって、そっちが8.9で(というか、普通に更新されてってる)
それを使えば解決した。
いったん、入れたやつをアンインストールしてから
(c:\windows以下とかに入ってるんで、消さないとこっちのssh.exeが優先されてしまう)
win64-msi版の配布ファイルを落としてきて(「github win32 openssh」でググれば出てくる)
それをダブルクリックするだけ。
設定云々は、既に前に書いたやつがユーザーフォルダ以下にあるから、そのまま使える。
msi版だと、サービスの登録とかもやってくれるんで楽。