JHH9232 Blog

Windows OpenSSH로 GUI 프로그램을 실행시켜 보자.


|

목차


Windows OpenSSH Server 로 GUI 프로그램을 실행시켜보자.


cmd 열어 유저의 session id 획득

image

query session | FIND "user_name"

# CMD AWK 명령어가 존재할 경우
# query session | FIND "user_name" | awk -F ' ' '{ print $3 }'

현재 session id는 1이라는 것이 판별됨.


https://docs.microsoft.com/ko-kr/sysinternals/downloads/psexec

psexec 명령어 설치

PsTools를 설치하여 C:\Windows\System32\ 에 복사

cmd창 열어 PsExec.exe 가 동작하는지 확인

image

http://gnuwin32.sourceforge.net/packages/gawk.htm

윈도우 cmd awk 설치


윈도우 설정 → 앱 → 앱 및 기능 → 선택적 기능 → 기능 추가

OpenSSH 서버 설치

image

C:\ProgramData 파일은 숨김 폴더로써 숨김 파일 및 폴더를 볼 수 있게끔 제어판 > 파일 탐색기 옵션에서 설정해줘야 합니다.

C:\ProgramData\ssh 의 sshd_config 수정

맨 마지막줄의

Match Group administrators ….

AuthorizedKeysFile….

두 줄 주석처리

# Match Group administrators
#        AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

(해당 두 줄의 내용을 주석처리해야 C:\Users\<USRNAME>\.ssh 의 authorized_keys 내용을 인식합니다.

이후 sshd_config의 내용 세팅


Powershell을 관리자 권한으로 실행

Get-Service sshd 명령어로 sshd 서비스 확인

image

Start-Service sshd 명령어로 sshd 서비스 실행

image

Running 상태 확인 완료

Stop-Service sshd 명령어로 sshd 서비스 종료 가능

image

Set-Service -Name sshd -StartupType 'Automatic’ 명령어로 서비스 자동 실행 등록 가능

Public Key, Priv Key 등록 이후 C:\Users\user_name\.ssh\authorized_keys 파일을 만들어 사용하는 공개키 ( id_rsa.pub ) 값을 복사 + 붙여넣기 하여 암호를 입력하지 않고 키교환으로 ssh 연결을 맺도록 진행.

방화벽으로 SSH 포트 열기 (이부분은 생략..)

리눅스 등의 외부에서 데스크탑 ssh 접속 가능한지 체크

ssh user_name@ip -p port 시 cmd 창이 열려야 함.

image

ssh로 notepad.exe, Beyond Compare.exe 등의 GUI 프로그램도 열어봄

실행 명령어를 사용하기 위해 맨 처음 query session 명령어를 통해 알아낸 session id 값이 필요함.

ssh user_name@IP "psexec -s -i <session_id> \"Program_Path\""

SSH가 연결된 상태라면 Session ID 를 ssh를 통해 가져올 수도 있다.

ssh user_name@ip "query session | FIND \"user_name\"" | awk -F ' ' '{ print $3 }'

ssh로 원격지에서 session id 값을 잘 가져왔음

image

이후 위 명령어대로 입력 시 정상적으로 실행이 되었음

image

프로그램을 닫고 나면 exited… 출력 내용과 함께 프로그램이 종료됨.

image

윈도우 ssh 연결 시도 성공

다음에는 윈도우 ssh를 통해 vscode와 beyond compare를 연동시키는 방법을 알아보겠다.

Comments