Linux/리눅스마스터 1급

※ Powershell OpenSSH를 통한 가상화 OS 접속하기 (Windows에서 Linux ssh 접속)(번외)

다주는 2021. 9. 3. 14:44

■ 현재 사용하고 있는 PC의 Windows에서 VMware Workstation의 가상 호스트에 접속할 수 있을까? 

▶ 답은 가능하다.

  흔히 putty를 이용해서 접속하는 방법도 있지만 그것보다 Windows에서 PowerShell을 이용하여 접근이 가능하다.

  PowerShell 말고도 우리가 아는 CMD로도 접근이 가능하다.

  물론 GUI 모드로 접근하는게 아닌 Command Line 형식으로 접근한다.

 

▶ 굳이 왜 이렇게 하는거야? 그냥 VM으로 해도 되는거 아니야?

  VM에서 좌측에 녹색 ▶ 표시만 되어있고 IP만 알고 있다면, VM을 숨김 모드로 해놓고

  현재 당신이 사용하고 있는 Windows OS에서 VM으로 접속이 가능하다.

  그럼 간단한 명령어를 치기 위해 굳이 번거롭게 다시 VMware를 켜고 끄고를 반복하지 않아도 된다.

 

PowerShell 그게 뭐야?

  MS사에서 개발한 CMD 업그레이드 버전이라고 생각하면 좋을 것 같다.

  아래의 이미지에 나와있는 그대로다.

MS 제공 PowerShell // CMD보다 더 정교한 작업 가능

 

 

 어떻게?

  Windows에서 PowerShell을 열어 OpenSSH를 설치해준다.

    ※ 여기서 OpenSSH란?

     → OS 공부를 하다보면 알게 되겠지만.. 흔히 Telnet, RSH, SSH 등 원격으로 호스트에 접근하기 위한 연결 도구라고 생각하면 된다.

  VMware에 설치되어있는 Linux 접근 후 ip를 알아낸다.(보통 명령어 ifconfig)

  Windows에서 PowerShell 실행 후 ssh (계정이름)@LinuxIP 이러한 형식으로 로그인을 진행한다.

 

 

 

 

 정답을 알았으니 실습해보자 

 실습

  1.  Windows OS 환경에서 로고키를 눌러 시작 버튼을 활성화 시킨 후 Powershell 우측 클릭 '관리자 권한' 실행

powershell 관리자 권한 실행

  2.  OpenSSH를 사용할 수 있는지 확인이 필요하다 / 아래의 명령어 입력

     Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

 

     그럼 아래의 이미지와 같이 오류가 뜬다.

관리자 권한으로 들어왔으나 생기는 오류..

  3. 권한 상승 상태의 PowerShell 창을 열기 위해 아래의 명령어 입력(대소문자 구분)

     PowerShell -Command "Start-Process PowerShell -Verb RunAs"

 실행하면 새로운 PowerShell 창이 뜬다.

  3. 새로운 창이 열리면 다시 2번의 명령어를 입력한다.

     Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

위와 같은 결과가 나와야한다. SSH Server, Client 버전이 설치가 되지 않은 경우다.

  4. 서버, 클라이언트 구성 요소를 둘 다 설치하자. (필요에 따라 선택하여 설치 가능)

      Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

      Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

위와 같이 Running 게이지가 100%가 되면 위와 같이 Path, Online, RestartNeeded 값이 보여야한다.

  5. OpenSSH 서버를 시작

     Start-Service sshd

     Set-Service -Name sshd -StartupType 'Automatic'

     Get-NetFirewallRule -Name *ssh*

     New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22                         -> "New부터 22까지 한 줄"

위의 명령어 입력한 뒤 화면

  6. Windows에서 접속할 준비는 마쳤고 이제 VMware에 접근하여 설정을 해주자

     우선 방화벽을 끈다.

     systemctl stop firewalld                  -> 방화벽 off

     systemctl disable firewalld              -> reboot 후에도 방화벽 비활성화

비활성화 이후 메시지가 뜨더라도 상관없으니 상태는  'systemctl status firewalld' 명령어로 확인해보자

  7. 현재 본인의 ip 파악

     ifconfig

본인 ip는 보통 ens33을 확인하면 된다.

  8. 이제 다 끝났다. Windows PowerShell 로 돌아가자.

     ssh (계정)@(본인 VM OS IP)

     Are you sure you want to continue connecting (yes/no)? yes

     Warning: Permanently added '192.168.136.132' (ecdsa) to the list of known hosts.

        -> 이 메시지로 인해 접근이 불가할 경우 댓글 달아주면 해결 방법을 알려드림.

     root@(본인 VM OS IP)'s password : 본인 Linux 패스워드 입력

     아래와 같이 정상 로그인 되는 것을 확인할 수 있다.

마지막 로그인이 언제인지 메시지가 뜨면서 정상적으로 로그인 된 것을 확인할 수 있다.

 이 글을 마치며... 

예전에 학생 때는 putty 라는 프로그램을 켜서 ssh 포트로 접속했었는데 그 방식보다 내 PC OS에서 간편하게 접속하고 싶었다.

직장에서는 putty 사용이 불가하기에 cmd 창에서 접속해서 쓰는데 powershell과 cmd는 거의 같다고 보면 된다.

 

오랜만에 내 PC에서 VM환경으로 접근하는 방법을 진행하다보니 OpenSSH가 Windows에서는 기본으로 뚫려있지 않다는 것을 인지했다.

지금껏 내가 만져왔던 건.. Workstation과 Server라는 점.. 기본적인 설치 구성요소가 달랐을 것이다.

 

나와 같은 증상을 겪는 분들을 위해 이 글을 쓰며, 검색해서 들어온 분들이 원하는 정보를 얻어가기를 바란다.