2013-07-01 4 views
1

특정 사용자의 계정으로 Windows 7 상자 (cygwin이 설치된 상태에서)에서 작업을 실행해야하는 Linux 상자 (Ubuntu Server 13.04)가 있습니다. openSSH를 통해 Windows 시스템에 액세스하기 위해 암호가없는 로그인을 설정했습니다.Cygwin의 OpenSSH

내가 직면 한 문제는 다음과 같습니다. 수동으로 Win7 시스템에 ssh를 설치하고 작업을 시작하면 모든 것이 정상입니다.

$ whoami 
linuxuser 
$ ssh [email protected] 
$ whoami 
winuser 
$ exit 
$ ssh [email protected] "whoami; exit" 
cyg_server 
>> This should be 'winuser' too. 

왜 이런 일이 될 수있다 : 나는 ssh를 winuser의 @의 winmachine 명령을 사용하여 작업을 시작할 때, 나는 특권 SSHD 사용자 'cyg_server'아래에있는 Windows 시스템에 연결 끝? ssh-host-config를 다시 실행 해 보았습니다. sshd_config에서 어떤 매개 변수가 영향을 줄지는 알 수 없습니다.

도움을 주시면 대단히 감사하겠습니다.

답변

2

SSH를 사용하여 Cygwin 컴퓨터에 연결할 때도 비슷한 문제가있었습니다. 언젠가는 내 경로가 올바르게 설정되지 않은 것을 알게 될 때까지 로그온하는 데 문제가 없었습니다. 난 단지는 ssh man 페이지에서 내 대답을 찾기 위해 ssh를 호스트-config로 구성 파일을 다시 나이를 보냈다 :

명령이 지정된 경우, 원격 호스트 로그인의 대신에서 실행되는

껍질.

화면에 자동으로 연결되도록 컴퓨터에 연결하는 데 사용 된 별칭이 자동으로 변경되었습니다 (screen -DR). 즉, 첨부 할 화면 세션이 없으면 화면이 사용자 로그인 쉘의 하위 프로세스로 실행되지 않고 관련 사용자 환경을 상속받지 못했음을 의미합니다.

ssh에 대한 인수로 명령을 제공하면 결과 명령은 cyg_server가 시작한 프로세스로 실행됩니다. (bash는 남자 페이지에서)

ssh [email protected] "bash -l -c 'whoami; exit'"

설명 : ssh 명령을 보장하는 것은 당신이 원하는 일을해야 로그인 쉘의 일부로 실행되는

-c string If the -c option is present, then commands are read from string. 
-l  Make bash act as if it had been invoked as a login shell. 
+0

어떻게 든, 나는 -l을 놓친 bash man의 옵션. 그러나 이것은 매력처럼 일했습니다, 고마워요! 그 동안 나는 Windows의 서비스로 가서 'sshd'서비스의 로그인을 변경하여 내 사용자를 사용함으로써이 문제를 해결했습니다. 이는 cyg_server가 항상 특정 사용자 계정을 사용하도록 연결하기 때문에 해킹이었습니다. 설정에 문제가 없지만 일반적인 해결책은 아닙니다. – OnMyLittleDuck

+0

도움이 될 수있어서 기쁩니다. 그건 나쁜 해킹이 아니었지만 쉘 명령이 환경 변수를 올바르게 설정해야하는 경우 문제가 발생합니다. –