しばたテックブログスマートフォン用の表示で見るしばたテックブログPowerShellを中心に気分で書いている技術ブログです。6.0が正式リリースされ当時の内容では正しく動作しなくなっていたので改めてやり直しました。SSHでは名前の通りSSHを使った通信を行います。基本的な仕組みとしては、クライアント側はpowershell(.exe)がリモートセッション生成時にssh(.exe)を呼び出し、powershell(.exe)→ssh(.exe)のプロセス間通信を経由してサーバーへの通信を行う。サーバー側はSSHdのサブシステムにPowerShellを登録。クライアントからの接続があった場合はsshd(.exe)→powershell(.exe)とリモートシェルが実行される。SSHを試す手順はGitHubで公開されているのでこの手順をベースに行います。(#6628)手順は一致しないかもしれませんが、Docsのこちらの手順が参考になりますので代わりにご覧ください。Docsもしくは削除直前のこちらのバージョンをご確認ください。7.4.1708を使い双方向で通信させてみます。他のOSでも細かい部分に違いはあるでしょうが基本的には同じ流れになると思います。その他細かい条件は以下。Coreをインストールして、sshd_configの設定を変更します。パスワード認証、鍵認証の可否については試験環境のデフォルト設定のままとしました。Coreをインストールします。PowerShell側の設定を若干変更する必要があります。-PassThru次にSSHをインストールします。Coreから以下の手順でインストールします。'Machine')インストール先はC:\OpenSSH-Win64としましたが、こちらについては必要に応じて変更しても構いません。SSHではssh.exeに対してPATHが通っていること(正確にはssh.exeだけでコマンド呼び出しができること)が必須であるためPATHは必ず通す様にしてください。テスト接続ここから実際に試してみます。New-PSSessionでPSセッションを作成します。SSHで通信することになります。vagrant実行すると以下の様にssh.exeを使ってサーバーに接続する際のあれやこれやを聞かれるので適切な情報を入力していきます。入力後、エラーが出なければ成功です。$Sessionの中身を確認すると以下の様になり、名前がSSHになっていることがわかります。このセッションがssh.exeと紐づいています。この$sessionを使いEnter-PSSessionしてリモート接続します。$Session実行結果は以下の様になり、無事CentOSにリモート接続できました。リモートからClear-Hostが使えないのは相変わらずでした...TERM環境変数を適当に設定してみましたが、Clear-Hostしてもエスケープシーケンスが表示されるだけなのでOSが対応しないとダメそうな雰囲気を感じます。2016だと上手くいくやも?)最後にRemove-PSSessionしてセッション情報を削除すると紐づいていたssh.exeも終了します。CentOSへの通信(鍵認証)鍵認証で通信する場合、基本的にSSHの鍵認証の方法と同一です。Windows側でssh-keygen.exeで鍵を作ります。鍵の種類やパスフレーズの有無は適当にしてください。4096Byte、パスフレーズ有りにしています。4096あとは作った公開鍵(id_rsa.pub)をCentOS側に転送し~/.ssh/authorized_keysに追加するだけです。以下の例では/vagrant/id_rsa.pubに鍵を転送しています。~/.ssh/authorized_keysこれで鍵認証の準備は完了です。鍵認証で接続する場合はNew-PSSessionの-KeyFilePathパラメーターを使用します。~\.ssh\id_rsaセッションが生成された後はパスワード認証の場合と同様です。Windowsへの通信(パスワード認証)最後に、CentOSをクライアント、Windowsをサーバーにした場合の接続を試します。前回同様パスワード認証のみとします。Windows上でsshdを動作させます。基本的にはGitHub上のインストール手順に従うだけなので問題ないかと思います。sshdsshd_configの設定はCentOSの場合と同様でサブシステムにPowerShell(Coreの方)を登録します。sshd_configはC:\ProgramData\ssh\sshd_configを修正してください。-NoProfileあとパスワード認証も許可しておきます。yesサービスを再起動して設定を反映させます。sshdこれで準備は完了です。CentOSからWindowsへ接続してみます。administratorセッション情報はこんな感じになります。Enter-PSSessionでWindowsへ接続できます。{ほげ}の様にコマンド実行であればネストして実行可能でした。Linuxを試すそろそろ試しておかないといけないかなと思ったので。広告スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。