※ Powershell OpenSSH를 통한 가상화 OS 접속하기 (Windows에서 Linux ssh 접속)(번외)
■ 현재 사용하고 있는 PC의 Windows에서 VMware Workstation의 가상 호스트에 접속할 수 있을까?
▶ 답은 가능하다.
흔히 putty를 이용해서 접속하는 방법도 있지만 그것보다 Windows에서 PowerShell을 이용하여 접근이 가능하다.
PowerShell 말고도 우리가 아는 CMD로도 접근이 가능하다.
물론 GUI 모드로 접근하는게 아닌 Command Line 형식으로 접근한다.
▶ 굳이 왜 이렇게 하는거야? 그냥 VM으로 해도 되는거 아니야?
VM에서 좌측에 녹색 ▶ 표시만 되어있고 IP만 알고 있다면, VM을 숨김 모드로 해놓고
현재 당신이 사용하고 있는 Windows OS에서 VM으로 접속이 가능하다.
그럼 간단한 명령어를 치기 위해 굳이 번거롭게 다시 VMware를 켜고 끄고를 반복하지 않아도 된다.
▶ PowerShell 그게 뭐야?
MS사에서 개발한 CMD 업그레이드 버전이라고 생각하면 좋을 것 같다.
아래의 이미지에 나와있는 그대로다.
▶ 어떻게?
Windows에서 PowerShell을 열어 OpenSSH를 설치해준다.
※ 여기서 OpenSSH란?
→ OS 공부를 하다보면 알게 되겠지만.. 흔히 Telnet, RSH, SSH 등 원격으로 호스트에 접근하기 위한 연결 도구라고 생각하면 된다.
VMware에 설치되어있는 Linux 접근 후 ip를 알아낸다.(보통 명령어 ifconfig)
Windows에서 PowerShell 실행 후 ssh (계정이름)@LinuxIP 이러한 형식으로 로그인을 진행한다.
■ 정답을 알았으니 실습해보자
▶ 실습
1. Windows OS 환경에서 로고키를 눌러 시작 버튼을 활성화 시킨 후 Powershell 우측 클릭 '관리자 권한' 실행
2. OpenSSH를 사용할 수 있는지 확인이 필요하다 / 아래의 명령어 입력
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
그럼 아래의 이미지와 같이 오류가 뜬다.
3. 권한 상승 상태의 PowerShell 창을 열기 위해 아래의 명령어 입력(대소문자 구분)
PowerShell -Command "Start-Process PowerShell -Verb RunAs"
3. 새로운 창이 열리면 다시 2번의 명령어를 입력한다.
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
4. 서버, 클라이언트 구성 요소를 둘 다 설치하자. (필요에 따라 선택하여 설치 가능)
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
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 후에도 방화벽 비활성화
7. 현재 본인의 ip 파악
ifconfig
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라는 점.. 기본적인 설치 구성요소가 달랐을 것이다.
나와 같은 증상을 겪는 분들을 위해 이 글을 쓰며, 검색해서 들어온 분들이 원하는 정보를 얻어가기를 바란다.