É possível abrir uma sessão SSH no PowerShell? Atualmente eu uso o PuTTY, mas seria bom se isso não fosse necessário.
É possível abrir uma sessão SSH no PowerShell? Atualmente eu uso o PuTTY, mas seria bom se isso não fosse necessário.
Respostas:
Não é claro, mas como o Powershell pode fazer qualquer coisa .Net pode fazer, existe uma maneira.
A solução paga seria / n NetCmdlets da Software.
A solução gratuita seria usar as sugestões deste post do blog.
Eu escrevi um módulo para lidar com sessões SSH do PowerShell, com base na biblioteca SSH.NET encontrada no CodePlex. Possui New-SshSession para criar conexões (vários destinos usando credenciais diferentes são suportadas) 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 possui um shell interativo muito básico.
O artigo está aqui .
Joakim
Faça o download do OpenSSH para Windows e escolha instalar apenas o cliente durante a instalação. O instalador inteiro, incluindo o servidor, tem menos de 3 MB e o cliente funciona bem.
Ainda estou postando uma resposta a esta pergunta, porque achei a resposta aceita que não atendia às minhas necessidades (apenas uma solução paga ou outra que não lida bem com o terminal).
Portanto, a solução óbvia para esse problema é instalar o cygwin. Faça uma instalação mínima se você quiser apenas o 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 no Powershell.
Existe uma solução alternativa (gratuita) do SSH do PowerShell, usando uma implementação de biblioteca mais recente, consulte vBlog >> Cliente SSH usando o PowerShell
Se a máquina de destino for uma caixa do Windows, você poderá usar o PowerShell Remoting .
Definitivamente, não é o mesmo que SSH. Existem profissionais (trazendo objetos de volta pela rede!) E contras (e se o destino for o Linux?).
http://www.powershellinside.com/powershell/ssh/ Grátis para uso pessoal.
Eu uso o Git http://git-scm.com/downloads
Inclui uma série de outras ferramentas como SCP e outras úteis também.
Uma maneira de obter um cliente ssh nativo muito bom é instalar o git no GitHub ( https://windows.github.com/ ).
Ele cria um atalho para uma janela elegante com todos os caminhos definidos corretamente para usar o git no PowerShell. Isso vem automaticamente com os binários ssh e scp no caminho.
Não tenho certeza de qual é a implementação, mas tem uma sensação semelhante ao Linux, ou seja, não parece que seja baseada em .Net ou usa comandos do 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 normal do 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")
Posh-SSH É um módulo gratuito da Revista Poswershell que funciona para o Powershell 3.0 e superior.
Está disponível em http://www.powershellmagazine.com/2014/07/03/posh-ssh-open-source-ssh-powershell-module/
A documentação completa é fornecida no link acima. Em um script, você realmente não deseja conexões interativas, portanto, são duas etapas. Primeiro crie a sessão. 2º enviar 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"
É uma prática recomendada colocar a criação da conexão em uma captura de tentativa e validar a existência da sessão antes de executar um comando. Isso faz com que interagir com servidores Linux de dentro de um script do PowerShell funcione bem.
SSH e SFTP, sem dúvida, representam o padrão do setor em aplicativos de acesso remoto seguro. Felizmente, é possível que o estabelecimento de uma conexão seja 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 cliente ssh padrão ou um software deamon a bordo.
Isso resulta em um zoológico de implementações mais ou menos esquisitas, código aberto, freeware, shareware e assim por diante ... algumas vezes, algumas vezes não.
Dentro das janelas, é uma coisa de dinheiro. A Microsoft simplesmente não deseja que muitos usuários se conectem a 1 computador com facilidade. Eles querem vender suas próprias soluções. Então eles não oferecem SSL nativo.
O cygwin é a melhor solução disponível.
putty / plink / winscp como software cliente. Também está ok para scripts.
existem ssh daeamons para integração com o Windows, mas as soluções são mais ou menos instáveis.
a maneira mais estável de ter o ssh deamon em windwos rodando é executá-lo dentro de uma VM Linux, pode ser realizado com uma pequena distribuição Linux.