win7 + cygwin + sshd 사용시 권한문제...
글쓴이: jeemin1 / 작성시간: 금, 2012/12/14 - 11:25오전
제 목표는 ssh클라이언트 정도만 있어도, 원격에 있는 윈7을 제어하려고 하는 것입니다.
윈도우 자체 텔넷 서버 기능으로는 성공했지만, 암호화가 필요해서요.
일단 cygwin으로 sshd설치에 성공했습니다. 외부에서도 접속이 잘 되더군요.
그래서 테스트로 윈도우 익스프롤러를 실행해보려고 했는데, 그대로 멈춰버리네요.
이번엔 외부접속이 아니라 cygwin콘솔창에서 같은것을 시도해 보니까 역시 그대로 멈춥니다.
그런데 cygwin콘솔창을 실행시킬 때 "관리자권한으로 실행"을 하니까 잘 됩니다,
이것으로 미루어 보아 권한부족으로 윈도우 명령이 실행되지 않는것이라고 보고 있습니다.
cygwin으로 설치된 sshd서비스를 관리자 권한으로 실행시키는 방법이 있따면 해결되지 않을까 싶네요.
현재는 cyg_server 라는 이름의 윈도우즈 유저로 sshd서비스가 실행중입니다.
혹시나 싶어서 윈도우 서비스 매니저에서 실행 유저를 cyg_server에서 "로컬 시스템 계정" 으로 바꿔 보았더니
서비스 시작시 오류가 나네요.... sshd는 cyg_server라는 유저로만 실행이 가능한것 같습니다.
뭔가 방법이 없을까요?
Forums:
자답입니다. 호환성 설정으로 성공했네요.
일단 sshd 서비스 등록정보에 보니까 해당 서비스를 실제로 실행하는 실행파일 경로를 알아낼 수 있었습니다.
이녀석을 탐색기로 접근해서 마우스 오른쪽 버튼 - 속성을 이용하니까 호환성 탭에 '관리자 권한으로 이 프로그램 실행' 이 있어 시도해 보니 아주 잘 됩니다.
이제 윈도우7도 시그윈과 sshd를 이용하면 외부에서도 단지 ssh클라이언트만 깔린곳이라면 접속해서 시스템 명령을 실행시킬 수 있다는 게 되네요.
ssh방식이다 보니 쉘스크립트와 호환성도 좋구요. WOL과 결합하면 외부에서 마음대로 윈7 PC를 껏다가 켰다가 할 수 있게 되었습니다.
그런데 겪으신 문제와 해결하셨다는 내용이 이해가 가지
그런데 겪으신 문제와 해결하셨다는 내용이 이해가 가지 않습니다..
ssh 접속해서 GUI프로그램을 살행하면 멈춘것처럼 보입니다.
GUI가 실행되었지만, 보이지 않는것이죠..
GUI를 종료하면 다시 쉘 프롬프트를 볼수 있습니다.
보이지 않는데 어떻게 종료하느냐?? ..이것은 대부분 Ctrl+C를 누르면 종료되긴 합니다만.. 100%는 아닙니다.
때로는 또다시 ssh 로그인을해서 kill 해줘야 할때도 있어요..
그런대 왜 GUI가 보이지 않는걸까요?
그것은 모니터 화면의 주인?이 ssh에서 로그인한 사용자의 세션이 아니기 때문입니다.
윈도우즈 콘솔에서 아무도 로그인하지 않았거나, 사용자 전환 화면일 수 있는거죠.
또한 같은 이름의 사용자가 로그인해서 화면을 소유?하더라도 같은 세션이 아니기 때문에
ssh로그인해서 실행한 GUI는 화면에 나타나지 않습니다.
이러한 기본? 동작을 바꾸려면, 서비스 관리콘솔에서 sshd 서비스 속성중에
'서비스와 데스크톱 상호작용 허용'과 유사한 옵션을 체크해주어야 하는것으로 알고 있습니다.
(XP에서는 그랬는데... Windows7에서는 확실하지 않습니다)
몇가지 궁금한게 있는데,
1. 알아내신 실행파일 이름 cygrunsrv 인가요? sshd 인가요?
2. 원격데스크톱은 고려하지 않으셨는지요? 거의 모든 컴퓨터에 터미널클라이언트가 있습니다.
(저는 ssh로 터널링해서 원격데스크톱 연결을 자주했습니다)
3. cygwin sshd는좀 느리더라구요.. 윈도우용 ssh 서버 프로그램이 있을겁니다.
물론 sh나 bash 쉘을 사용하는게 아니라 cmd.exe를 사용합니다만..
(저도 cmd 보다는 sh/bash가 좋습니다)
앗 죄송합니다 제가 하필이면 GUI를 예로 들었네요 ㅎㅎ
앗 죄송합니다 제가 하필이면 GUI를 예로 들었네요 ㅎㅎ
저도 GUI문제는 잘 알고 있기에 SSH연결로 GUI를 원격에서 실행할 생각은 전혀 없었습니다.
실제로 제가 하려는건 shutdown명령 등등을 날려보려는거였죠.
원격에서 끄고 켜는게 목적이었으니까요.
궁금하다고 하셨던것은,, 일단 실행파일 이름은 cygrunsrv 였구요,
원격 데스크톱은 당연히 고려했습니다만 처음부터 제가 원하는것은
"SSH클라이언트만 있어도 윈도우 서버를 제어한다" 였으니까요.
아무래도 원격데스크톱 클라이언트는 많이 무겁고, 자원을 많이 써서 그렇습니다
결정적으로 쉘스크립트나, 기타 프로그램 언어와 연계가 매우 어려워서 제외한 겁니다.
또 스마트폰에서도 SSH클라이언트앱이 원격데스크톱 앱보다 훨씬 가볍죠.
그리고 윈도우용 SSH은 저도 openssh for windows와 FreeSSHd사이에서 고민했습니다만
이미 윈도PC에 시그윈이 깔려있었다는게 가장 큰 선택의 이유였습니다.
openssh for windows를 선택하고 깔아보니 내부적으로 시그윈을 까는 방식이길래
그냥 직접 세팅하자고 생각한거죠.
마지막으로 테스트해 본 결과 지금시점에서 (권한문제가 다 해결된 상황에서)
GUI프로그램을 실행해 봐도 다운되는것 처럼 보이지 않네요...
인터넷익스프롤러를 실행하면, 그냥 곧바로 커맨드라인이 바로 나타나고
백그라운드로 정상적으로 (의미없이 -_-;) 익스프롤러가 정상적으로 실행 됩니다.
댓글 달기