PowerShell을 통한 SSH


54

PowerShell에서 SSH 세션을 열 수 있습니까? 현재 PuTTY를 사용하고 있지만 필요하지 않으면 좋을 것입니다.


1
나는 그것이 기본적으로 지원되지는 않는다는 것을 알고 있지만 해결책도보고 싶습니다.
egorgry

5
커맨드 라인에서 putty.exe (또는 plink.exe)를 호출하면 무엇이 잘못됩니까?
Javier

4
Javier : plink가 SSH 클라이언트 일뿐 아니라 터미널 에뮬레이션 기능이 완전히 부족한 것으로 시작합시다 .
grawity

+1, 해결책을 직접보고 싶습니다. 그리고 대부분 나는 퍼티를 너무 싫어합니다. (SecureCRT 사용자)
Urda

1
Microsoft는 SSH에 대한 향후 지원 발표 : blogs.msdn.com/b/powershell/archive/2015/06/03/…
nw.

답변:



9

CodePlex에있는 SSH.NET 라이브러리를 기반으로 PowerShell의 SSH 세션을 처리하기위한 모듈을 작성했습니다. 연결을 만드는 New-SshSession이 있습니다 (서로 다른 자격 증명을 사용하는 여러 대상이 지원됨). Invoke-SshCommand를 사용하여 여러 대상 호스트에 대해 명령을 실행할 수 있습니다. 매우 기본적인 대화식 쉘을 가진 Enter-SshSession도 있습니다.

기사는 여기에 있습니다 .

호 아킴


6

Windows 용 OpenSSH를 다운로드 하고 설치 중 클라이언트 만 설치하도록 선택하십시오. 서버를 포함한 전체 설치 관리자는 3MB가 적으며 클라이언트는 정상적으로 작동합니다.


2
해당 프로젝트에는 Windows 7 및 8에서 시스템 PATH 변수를 스톰 핑하는 설치 프로그램에 대한 경고가 많이 있습니다.주의하십시오!
Patrick M

2

허용 된 답변이 내 요구에 전혀 맞지 않음을 발견했기 때문에 여전히이 질문에 대한 답변을 게시하고 있습니다 (유료 솔루션 또는 터미널을 잘 처리하지 않는 다른 솔루션 만 해당).

따라서이 문제에 대한 확실한 해결책은 cygwin을 설치하는 것입니다. ssh 만 원한다면 최소 설치를 수행하십시오. 그러나 powershell은 * nix 쉘 (기본 명령은 여전히 ​​있으며 디렉토리의 경우 "/"등)과 기본 수준의 호환성을 제공하므로 Powershell 내부에서 cygwin 항목을 사용할 수 있습니다.

Cygwin 설치는 여기


1
시그윈? le! VM을
실행할

어떻게 그렇게? ssh는 Windows 컴파일 된 실행 파일입니다. 유닉스와 상호 작용하고 싶지 않다면 그것을 위해 lib를 설치해야한다는 것은 놀라운 일이 아닙니다.
raph.amiard

Ameer Deen의 답변을 참조하십시오. 이것이 최선의 해결책이라고 생각합니다.
Hosh Sadiq 2019

1
@HoshSadiq Windows 용 OpenSSH 설명 : "Windows 플랫폼에서 OpenSSH 서버를 실행하기에 적합한 Cygwin 환경의 최소 설치를위한 설치 프로그램"
Douglas Ludlow


1

대상 컴퓨터가 Windows 상자 인 경우 대신 PowerShell Remoting을 사용할 수 있습니다 .

SSH와 동일하지 않습니다. 장점 (전망으로 객체를 가져 오는 것입니다!)과 단점 (대상이 Linux 인 경우 어떻게됩니까?)이 있습니다.




1

아주 좋은 네이티브 ssh 클라이언트를 얻는 한 가지 방법은 GitHub ( https://windows.github.com/ ) 에서 git을 설치하는 것 입니다.

powershell에서 git을 사용하도록 모든 경로가 올바르게 설정된 posh-git 창에 대한 바로 가기를 만듭니다. 경로에 ssh 및 scp 바이너리가 자동으로 제공됩니다.

나는 그것이 어떤 구현인지 확실하지 않지만 Linux와 같은 느낌을 가지고 있습니다. 즉, .Net 기반이거나 powershell 커맨드 렛을 사용하는 것처럼 느껴지지 않습니다.

$ home / .ssh /에서 openssh 형식으로 구성한 개인 키를 선택하고 누군가가 확인할 수 있습니다. 그것은 열린 느낌입니다.

더 좋게 만들기 위해 $ profile에서 다음을 수행하여 일반 powershell 프로파일에 통합했습니다. 즉, github의 단축키를 사용할 필요가 없습니다.

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


1

Posh-SSH Powershell 3.0 이상에서 작동하는 Poswershell Magazine의 무료 모듈입니다.

http://www.powershellmagazine.com/2014/07/03/posh-ssh-open-source-ssh-powershell-module/ 에서 제공됩니다 .

전체 링크는 위 링크에서 제공됩니다. 스크립트에서는 실제로 대화식 연결을 원하지 않으므로 두 단계입니다. 먼저 세션을 만듭니다. 두 번째 보내기 명령.

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

생성 한 첫 번째 세션의 인덱스는 0입니다.

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

연결 작성을 시도 캐치에두고 명령을 실행하기 전에 세션이 존재하는지 검증하는 것이 가장 좋습니다. 이를 통해 powershell 스크립트 내부에서 Linux 서버와 상호 작용할 수 있습니다.


-2

SSH와 SFTP는 의심 할 여지없이 안전한 원격 액세스 응용 프로그램의 산업 표준을 나타냅니다. 운 좋게도 연결 설정이 정말 빠르고 쉽습니다. 불행히도 진실은 문제 해결에 시간을 낭비 할 가능성이 많다는 것입니다.

불행히도 Windows에는 표준 ssh 클라이언트 또는 데몬 소프트웨어가 탑재되어 있지 않습니다.

이로 인해 다소 이상한 구현, 오픈 소스, 프리웨어, 쉐어웨어 등의 동물원이 생길 수 있습니다.

창문 안에서는 돈이다. Microsoft는 많은 사용자가 하나의 lizensed 컴퓨터에 쉽게 연결하는 것을 원하지 않습니다. 그들은 자신의 솔루션을 판매하기를 원합니다. 따라서 그들은 네이티브 SSL을 제공하지 않습니다.

cygwin은 최고의 솔루션입니다.

클라이언트 소프트웨어로 퍼티 / plink / winscp. 스크립팅에도 좋습니다.

Windows 통합을위한 ssh deamons가 있지만 솔루션은 다소 불안정합니다.

windwos 실행에서 ssh deamon을 사용하는 가장 안정적인 방법은 Linux VM 내에서 실행하는 것입니다. 작은 Linux distibution으로 실현할 수 있습니다.


4
이것은 실제로 OP 질문에 대답 하지 않습니다 . cygwin이 OP에 의해 제기 된 질문에 대한 솔루션 인 이유를 표시하도록 질문을 편집 할 수 있습니까?
Twisty Impersonator

OP는 PowerShell 관련 솔루션 이외의 대안을 요구하지 않습니다.
cychoi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.