PowerShellでSSHセッションを開くことはできますか?現在、PuTTYを使用していますが、必要ない場合はそれでいいでしょう。
もちろん組み込みではありませんが、Powershellは.Netでできることは何でもできるので、方法があります。
有料のソリューションは / nソフトウェアのNetCmdletsです
無料の解決策は、 このブログ投稿の提案を使用することです。
CodePlexにあるSSH.NETライブラリに基づいて、PowerShellからのSSHセッションを処理するためのモジュールを作成しました。接続を作成するためのNew-SshSessionがあり(さまざまな資格情報を使用する複数のターゲットがサポートされています)、Invoke-SshCommandを使用して任意の数のターゲットホストに対してコマンドを実行できます。非常に基本的なインタラクティブなシェルを持つEnter-SshSessionもあります。
記事は here です。
ヨアキム
ダウンロード OpenSSH for Windows で、インストール中にクライアントのみをインストールすることを選択します。サーバーを含むインストーラー全体は3MB未満で、クライアントは問題なく動作します。
新しいライブラリ実装を使用した代替(無料)PowerShell SSHソリューションがあります。「 vBlog >> PowerShellを使用したSSHクライアント 」を参照してください。
受け入れられた回答が自分のニーズにまったく合わないことがわかったので、私はまだこの質問への回答を投稿しています(有料ソリューションまたは端末を適切に処理しない別のソリューションのみ)。
したがって、この問題の明白な解決策は、cygwinをインストールすることです。 sshだけが必要な場合は最小限のインストールを実行しますが、Powershellは* nixシェルとの基本レベルの互換性を提供するため(基本コマンドはまだ存在し、ディレクトリは「/」など)、Powershell内でcygwinのものを使用することは実際に可能です。
ターゲットマシンがWindowsボックスの場合は、代わりにPowerShell Remotingを使用できます。
SSHとはまったく異なります。長所(オブジェクトをネットワーク経由で戻す)と短所(ターゲットがLinuxの場合はどうでしょうか)があります。
非常に優れたネイティブsshクライアントを取得する1つの方法は、GitHub( https://windows.github.com/ )からgitをインストールすることです。
Powershellでgitを使用するためにすべてのパスが正しく設定されたposh-gitウィンドウへのショートカットを作成します。これには、パスにsshおよびscpバイナリが自動的に付属しています。
それがどの実装であるかはわかりませんが、Linuxのような感じがします。つまり、.Netベースである、またはpowershellコマンドレットを使用しているような気がしません。
$ home/.ssh /に設定した秘密鍵をopenssh形式で取得しており、誰かが確認できる可能性があります。 opensshのような感じです。
それをさらに良くするために、私は$ profileで以下を実行することにより、それを私の通常のpowershellプロファイルに統合しました。つまり、githubのショートカットを使用する必要はありません。
. (Resolve-Path "$env:LOCALAPPDATA\GitHub\Shell.ps1") . (Resolve-Path "$env:LOCALAPPDATA\GitHub\PoshGit_*\profile.example.ps1")
私はGitを使用します http://git-scm.com/downloads
SCPなどの便利な他のツールのホストも含まれます。
Posh-SSHは、Powershell 3.0以降で動作するPoswershell Magazineの無料モジュールです。
http://www.powershellmagazine.com/2014/07/03/posh-ssh-open-source-ssh-powershell-module/ で入手できます
完全なドキュメントは上記のリンクで提供されています。スクリプトでは、インタラクティブな接続は必要ないので、2つのステップです。最初にセッションを作成します。 2番目の送信コマンド。
$ServerConnection = New-SSHSession -KeyFile $keyLocation -ComputerName $sshComp -Credential $mycreds -AcceptKey
作成する最初のセッションのインデックスは0になります。
Invoke-SSHCommand -Index 0 -Command "some command to run over ssh"
コマンドを実行する前に、接続の作成をtryキャッチに入れ、セッションが存在することを確認することをお勧めします。これにより、PowerShellスクリプト内からLinuxサーバーとのやり取りがうまく機能します。
http://www.powershellinside.com/powershell/ssh/ 個人での使用は無料です。