PowerShell/Win32-OpenSSH/ を触ってみたよ
microsoftがOpenSSHをサポート! という話から 10/13づけでとりあえず動くバイナリが出てましたのでちょっと触ってみました。
ダウンロードは PowerShell/Win32-OpenSSH · GitHub のreleaseから。 インストール方法は Deploy Win32 OpenSSH · PowerShell/Win32-OpenSSH Wiki · GitHub にあります。 一応書いておくと
ダウンロードしたファイルを任意の場所に解答
中のsetup-ssh-lsa.cmdを管理者として実行
再起動
ssh-keygenで4種類のssh_host_keyを作るパスワードはなしで。(別に1個だけでもいいけどなんか警告が出る)
ssh-keygen.exe -t rsa -f ssh_host_rsa_key
ssh-keygen.exe -t dsa -f ssh_host_dsa_key
ssh-keygen.exe -t ecdsa -f ssh_host_ecdsa_key
ssh-keygen.exe -t ed25519 -f ssh_host_ed25519_keysshdを起動
以上でsshdが動かせます。
今回はローカルで試したのでローカルホストに接続してます。
クライアント側は ssh localhost でつなげると、パスワードを聞かれるので入力するとつながります。
つないだ先はpowershellかと思ったらどうもcmd.exeっぽく。
どこかにshell変更する設定ファイルがあるのかも。
で、ここからが挙動の話。
- コマンド打つと、コマンド名が2回表示されます。自分の打ったのと合わせて3つ。
- 存在しないコマンドを打つと、帰ってきたプロンプトに"そんなコマンドありません"的なメッセージがかぶります。
- powershellを動かすと sshdが動いてるところでpowershellが動きます。
sshdが動いてるほうでpowershellを終了するまで応答が帰ってきません
この件についてはwikiに書いてありました。
powershell -File -
とやるとpowershell使えます。 - cmd.exeは普通にsshでログインしたプロンプトで動いてくれます。
- sshdを動かしたあと、ログインされるとCtrl+C等でsshdが終了できなくなるのでtaskmanagerのお世話になる必要があります。(プロセス強制終了)
- sshクライアントは Enterキーを押すまでキー入力を送ってくれないっぽいです。
- 上記のことから、tab補完とかききません。
とりあえずさらっと触ってみたところこのくらい。
Enterキーを押すまでキー入力を送ってくれないっぽいので、 ssh した先でさらに sshしたりすると パスワードが*にならずそのまま表示されます。
これはさすがによろしくないのでは。