Windows용 ssh server 소개
목차 |
상황
다수의 윈도우 머신에 패키지를 설치하거나 삭제하는 등의 관리가 필요할 때
진행단계
- ssh를 설치
- dua, dush 설치
- msiexec를 사용하여 무인설치
필요한 것
MobaSSH - SSH server for Win32 based on Cygwin/OpenSSH
dush 설정
MobaSSH는 Cygwin based(Cygwin을 따로 설치할 필요가 없음)이지만 dush에서 사용하는 expr이 없다.
그러므로 CoreUtils를 설치한 뒤 expr.exe만 C:\WINDOWS\system32\bsh\bin에 복사해오면 문제없다.
한글 설정
과거 Cygwin에서 한글을 제대로 사용하기 위해서는 inputrc에 다음과 같은 설정이 필요했으나 [1]
현재는 default로 들어가 있으므로 신경쓸 필요가 없다.
set meta-flag on set convert-meta off set output-meta on set input-meta on
그리고 ls 명령으로 제대로 된 한글 디렉토리를 보려면 다음과 같은 ls 옵션이 필요하다.
/etc/profile에 alias 설정을 해두자.
alias ls="ls --color=auto --show-control-chars"
putty에서 접속할 때 다음 그림과 같이 Use font encoding으로 설정해 주어야한다.
소유권 문제
dua나 scp를 사용하여 파일을 복사한 뒤 msiexec를 사용하여 quiet mode로 패키지를 설치하려고 할 경우 다음과 같은 에러가 뜬다.
시스템이 지정된 장치나 파일을 열 수 없습니다.
이것은 LOGNAME이 Administrator이므로 복사후 파일의 소유권도 Administrators가 아닌 Administrator로 설정되기 때문이다. (s가 붙는 것에 주의)
설치를 위해 Administrators로 소유권을 변경시키면 된다.
# chown Administrator Administrators 패키지
msiexec
Windows Installer는 CLI[2]에서도 msiexec를 사용하여 패키지를 설치할 수 있다.
msiexec의 옵션이 궁금하다면 지금 당장 시작->실행->msiexec를 눌러보면 알 수 있다.
여기서는 다음과 같은 커맨드로 전체 노드에 무인설치 할 것이다.
(전 노드에 패키지 파일이 배포되어 있음을 가정한다.)
# dush -sp 'msiexec /i 패키지 /quiet /passive
문제점
- msiexec의 한글 에러 메세지가 깨져서 나옴
위의 한글 설정을 하고도 이상하게 msiexec의 메세지만 알아볼 수 없게 나옴.
-> msiexec의 /l 옵션으로 에러메세지를 log파일로 저장할 수 있음.
- dua의 오동작
리눅스 머신에서 잘 동작하던 dua가 파일 하나를 지정해도 전 디렉토리를 모두 sync함
- 매우 느림 --;