web-dev-qa-db-ja.com

PowerShell経由のSSH

PowerShellでSSHセッションを開くことはできますか?現在、PuTTYを使用していますが、必要ない場合はそれでいいでしょう。

54
nw.

もちろん組み込みではありませんが、Powershellは.Netでできることは何でもできるので、方法があります。

有料のソリューションは / nソフトウェアのNetCmdletsです

無料の解決策は、 このブログ投稿の提案を使用することです。

19
MattB

CodePlexにあるSSH.NETライブラリに基づいて、PowerShellからのSSHセッションを処理するためのモジュールを作成しました。接続を作成するためのNew-SshSessionがあり(さまざまな資格情報を使用する複数のターゲットがサポートされています)、Invoke-SshCommandを使用して任意の数のターゲットホストに対してコマンドを実行できます。非常に基本的なインタラクティブなシェルを持つEnter-SshSessionもあります。

記事は here です。

ヨアキム

9
Joakim

ダウンロード OpenSSH for Windows で、インストール中にクライアントのみをインストールすることを選択します。サーバーを含むインストーラー全体は3MB未満で、クライアントは問題なく動作します。

6
Ameer Deen

新しいライブラリ実装を使用した代替(無料)PowerShell SSHソリューションがあります。「 vBlog >> PowerShellを使用したSSHクライアント 」を参照してください。

2
Simon

受け入れられた回答が自分のニーズにまったく合わないことがわかったので、私はまだこの質問への回答を投稿しています(有料ソリューションまたは端末を適切に処理しない別のソリューションのみ)。

したがって、この問題の明白な解決策は、cygwinをインストールすることです。 sshだけが必要な場合は最小限のインストールを実行しますが、Powershellは* nixシェルとの基本レベルの互換性を提供するため(基本コマンドはまだ存在し、ディレクトリは「/」など)、Powershell内でcygwinのものを使用することは実際に可能です。

Cygwin install here

2
raph.amiard

ターゲットマシンがWindowsボックスの場合は、代わりにPowerShell Remotingを使用できます。

SSHとはまったく異なります。長所(オブジェクトをネットワーク経由で戻す)と短所(ターゲットがLinuxの場合はどうでしょうか)があります。

1
Jay Bazuzi

非常に優れたネイティブ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")

1
Devang Mehta

私はGitを使用します http://git-scm.com/downloads

SCPなどの便利な他のツールのホストも含まれます。

1
Justin

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サーバーとのやり取りがうまく機能します。

1
Eric

http://www.powershellinside.com/powershell/ssh/ 個人での使用は無料です。

1
Rob