Windows OpenSSH로 GUI 프로그램을 실행시켜 보자.
목차
Windows OpenSSH Server 로 GUI 프로그램을 실행시켜보자.
cmd 열어 유저의 session id 획득
1
2
3
4
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 가 동작하는지 확인
http://gnuwin32.sourceforge.net/packages/gawk.htm
윈도우 cmd awk 설치
윈도우 설정 → 앱 → 앱 및 기능 → 선택적 기능 → 기능 추가
OpenSSH 서버 설치
C:\ProgramData
파일은 숨김 폴더로써 숨김 파일 및 폴더를 볼 수 있게끔 제어판 > 파일 탐색기 옵션에서 설정해줘야 합니다.
C:\ProgramData\ssh
의 sshd_config 수정
맨 마지막줄의
Match Group administrators ….
AuthorizedKeysFile….
두 줄 주석처리
1
2
# Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
(해당 두 줄의 내용을 주석처리해야 C:\Users\<USRNAME>\.ssh
의 authorized_keys 내용을 인식합니다.
이후 sshd_config의 내용 세팅
Powershell을 관리자 권한으로 실행
Get-Service sshd
명령어로 sshd 서비스 확인
Start-Service sshd
명령어로 sshd 서비스 실행
Running 상태 확인 완료
Stop-Service sshd
명령어로 sshd 서비스 종료 가능
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 창이 열려야 함.
ssh로 notepad.exe, Beyond Compare.exe 등의 GUI 프로그램도 열어봄
실행 명령어를 사용하기 위해 맨 처음 query session
명령어를 통해 알아낸 session id 값이 필요함.
1
ssh user_name@IP "psexec -s -i <session_id> \"Program_Path\""
SSH가 연결된 상태라면 Session ID 를 ssh를 통해 가져올 수도 있다.
1
ssh user_name@ip "query session | FIND \"user_name\"" | awk -F ' ' '{ print $3 }'
ssh로 원격지에서 session id 값을 잘 가져왔음
이후 위 명령어대로 입력 시 정상적으로 실행이 되었음
프로그램을 닫고 나면 exited… 출력 내용과 함께 프로그램이 종료됨.
윈도우 ssh 연결 시도 성공
다음에는 윈도우 ssh를 통해 vscode와 beyond compare를 연동시키는 방법을 알아보겠다.