Search

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

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