SSH via PowerShell

52

É possível abrir uma sessão SSH no PowerShell? Atualmente eu uso o PuTTY, mas seria bom se isso não fosse necessário.

    
por nw. 18.02.2010 / 18:27

11 respostas

19

Não é construído, é claro, mas como o Powershell pode fazer qualquer coisa que o Net possa fazer, existe uma maneira.

A solução paga seria / n NetCmdlets de software.

A solução gratuita seria usar as sugestões de este blog postar.

    
por 18.02.2010 / 18:39
9

Eu escrevi um módulo para lidar com sessões SSH do PowerShell, baseado na biblioteca SSH.NET encontrada no CodePlex. Ele tem o New-SshSession para criar conexões (vários destinos que usam diferentes credenciais são suportados) e, em seguida, você pode usar o Invoke-SshCommand para executar comandos em qualquer número de hosts de destino. Existe até um Enter-SshSession que tem um shell muito básico e interativo.

O artigo é aqui .

Joakim

    
por 27.04.2012 / 11:01
6

Faça o download do OpenSSH for Windows e escolha instalar apenas o cliente durante a instalação. Todo o instalador, incluindo o servidor, tem menos 3MB e o cliente funciona bem.

    
por 05.09.2011 / 15:28
2

Ainda estou postando uma resposta para essa pergunta, porque achei a resposta aceita não adequada às minhas necessidades (apenas uma solução paga ou outra que não cuida bem do terminal).

Portanto, a solução óbvia para esse problema é instalar o cygwin. Faça uma instalação mínima se você quiser apenas ssh, mas como o powershell fornece um nível básico de compatibilidade com shells * nix (comandos básicos ainda estão lá, "/" para diretórios, etc), é realmente possível usar o cygwin dentro do Powershell. / p>

Cygwin instale aqui

    
por 13.10.2010 / 22:49
2

Há uma solução SSH PowerShell alternativa (gratuita), usando uma nova implementação de biblioteca, veja vBlog > > Cliente SSH usando o PowerShell

    
por 06.03.2012 / 12:01
1

Se a máquina de destino for uma caixa do Windows, você poderá usar Remoto do PowerShell .

Definitivamente não é o mesmo que SSH. Há pros (trazendo objetos de volta através do fio!) E contras (e se o alvo for o Linux?).

    
por 20.02.2010 / 20:55
1

link Gratuito para uso pessoal.

    
por 14.02.2012 / 07:01
1

Eu uso o link do Git

Inclui uma série de outras ferramentas, como o SCP, que também são úteis.

    
por 08.05.2014 / 21:29
1

Uma maneira de obter um bom cliente ssh nativo é instalar o git no GitHub ( link ).

Ele cria um atalho para uma janela nobre com todos os caminhos definidos corretamente para usar o git no powershell. Isso vem automaticamente com binários ssh e scp no caminho.

Não sei ao certo qual é a implementação, mas ela tem uma sensação semelhante ao Linux, ou seja, ela não parece ser baseada em .Net ou usa commandlets powershell.

Ele está pegando a chave privada que eu configurei em $ home / .ssh / no formato openssh e talvez alguém possa confirmar. Parece que é openssh.

Para torná-lo ainda melhor, integrei-o ao meu perfil regular de powershell fazendo o seguinte no meu perfil $. Isso significa que não preciso usar o atalho do github.

. (Resolve-Path "$env:LOCALAPPDATA\GitHub\shell.ps1") . (Resolve-Path "$env:LOCALAPPDATA\GitHub\PoshGit_*\profile.example.ps1")

    
por 06.08.2015 / 09:03
1

Posh-SSH É um módulo gratuito da revista Poswershell que funciona para o Powershell 3.0 e superior.

Ele está disponível no link

A documentação completa é fornecida no link acima. Em um script, você não quer realmente conexões interativas, então são dois passos. 1º crie a sessão. 2º manda comandos.

$ServerConnection = New-SSHSession -KeyFile $keyLocation -ComputerName $sshComp -Credential $mycreds -AcceptKey

A primeira sessão que você criar terá um índice de 0.

Invoke-SSHCommand -Index 0 -Command "some command to run over ssh"

A melhor prática é colocar a criação da conexão em um try catch e validar a sessão antes de executar um comando. Isso faz com que a interação com servidores Linux de dentro de um roteiro powershell funcione bem.

    
por 08.10.2015 / 19:25
-2

O SSH e o SFTP representam, sem dúvida, o padrão da indústria em aplicativos de acesso remoto seguro. Felizmente, é possível que estabelecer uma conexão possa ser realmente rápido e fácil. Infelizmente a verdade é que existem muitas possibilidades de perder tempo com a solução de problemas.

Infelizmente, o Windows não possui um software padrão ssh client ou deamon on board.

Isso resulta em um zoológico de implementações mais ou menos esquisitas, código aberto, freeware, shareware e assim por diante ... às vezes trabalhando às vezes não.

Dentro do Windows, é uma coisa de dinheiro. A Microsoft simplesmente não quer que muitos usuários se conectem facilmente a um computador lizensed. Eles querem vender suas próprias soluções. Então eles não oferecem SSL nativo.

cygwin é a melhor solução disponível.

putty / plink / winscp como software cliente. também é bom para scripts.

existem deamons ssh para integração com janelas, mas as soluções são mais ou menos instáveis.

a maneira mais estável de ter o ssh deamon em execução do windwos é executá-lo dentro de uma VM do Linux, pode ser realizada com uma pequena distribuição de linux.

    
por 12.11.2014 / 14:58