Microsoft MVP성태의 닷넷 이야기
Linux: 1. 리눅스 <-> 윈도우 원격 접속 프로그램 사용 [링크 복사], [링크+제목 복사],
조회: 50996
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 1개 있습니다.)

리눅스 <-> 윈도우 원격 접속 프로그램 사용

VNC 이외에 괜찮은 원격 접속 방법이 리눅스에 있다는 것은 처음 알았군요. 단지, 리눅스 종류가 워낙 다양하다 보니 모든 버전이 지원되지는 않는 것 같습니다.

일단, 무료로 쓸 수 있는 FreeNX라는 프로그램이 있는데요.

편리한 리눅스 원격 접속프로그램 NX
; http://www.ubuntuk.com/tip/23864

X Window 원격 접속 -- FreeNX
; http://pplane.net/entry/자동-저장-문서-5

우분투에서 원격제어 (FreeNX) 사용하기
; http://xepi.tistory.com/tag/NX

마침, 회사에 아무도 쓰지 않는 노트북이 있어서 "우분투"를 설치하고 FreeNX를 설치해 보았습니다.

아래의 웹 사이트에서 NX 제품의 무료 버전을 설치할 수 있는데,

NX 3.5.0 Download
; http://www.nomachine.com/download.php

위의 웹 페이지에서 제공되는 링크 중에서 "NX Free Edition for Linux"를 선택해서 들어가면, x86 / x64에 따라 각각 RPM i386, DEP i386, Compressed TAR i386의 3가지 분류로 다운로드가 제공됩니다. 이 중에서 자신의 Linux 환경에 맞는 것을 고르면 되는데, 제 경우에는 Ubuntu여서 "NX Free Edition for Linux DEB i386"을 선택했습니다.

NX Free Edition for Linux DEB i386
; http://www.nomachine.com/download-package.php?Prod_Id=3501

그럼, client/node/server에 대해 각각 다운로드 할 수 있는 링크를 제공하는데 모두 다운로드해야 합니다. 왜냐하면, 의존관계가 있어서 client, node, server 순으로 우분투에 전부 설치해 주어야 하기 때문입니다. 그런데, 여기서 또 한 가지 놀랐는데요. ^^ 해당 파일들을 그냥 Firefox 웹 브라우저에서 다운로드 해서 더블 클릭해주면 "우분투 소프트웨어 센터"가 뜨면서 설치까지 자연스럽게 되었습니다. 이 정도면, 윈도우에서 EXE 설치 파일 실행하는 것과 다름없는데 - RPM 설치를 별도로 명령행에서 해주어야 한다고 생각했었기 때문에 - 정말 편해진 것을 체감할 수 있었습니다. (참고로, 저는 리눅스를 거의 사용해 본 적이 없는 개발자입니다. ^^)

하지만, 이렇게만 설치했다고 접속 가능한 상태가 되는 것은 아닙니다. 다음의 명령어를 통해서 SSH 서비스를 마저 실행해 주어야 합니다. (아래는, ssh 설치 및 마지막 확인을 22번 포트가 열려있는지 검사하기 위한 콘솔 출력을 보여주고 있습니다.)

root@LinuxX86:~# sudo apt-get install ssh
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다 
상태 정보를 읽는 중입니다... 완료
다음 패키지를 더 설치할 것입니다:
  openssh-server ssh-import-id
제안하는 패키지:
  rssh molly-guard openssh-blacklist openssh-blacklist-extra
다음 새 패키지를 설치할 것입니다:
  openssh-server ssh ssh-import-id
0개 업그레이드, 3개 새로 설치, 0개 제거 및 205개 업그레이드 안 함.
318 k바이트 아카이브를 받아야 합니다.
이 작업 후 954 k바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까 [Y/n]? y
받기:1 http://kr.archive.ubuntu.com/ubuntu/ natty/main openssh-server i386 1:5.8p1-1ubuntu3 [311 kB]
받기:2 http://kr.archive.ubuntu.com/ubuntu/ natty/main ssh all 1:5.8p1-1ubuntu3 [1,280 B]
받기:3 http://kr.archive.ubuntu.com/ubuntu/ natty/main ssh-import-id all 2.4-0ubuntu1 [5,934 B]
내려받기 318 k바이트, 소요시간 1초 (278 k바이트/초)
패키지를 미리 설정하는 중입니다...
전에 선택하지 않은 openssh-server 패키지를 선택합니다.
(데이터베이스 읽는중 ...현재 131759개의 파일과 디렉터리가 설치되어 있습니다.)
openssh-server 패키지를 푸는 중입니다 (.../openssh-server_1%3a5.8p1-1ubuntu3_i386.deb에서) ...
전에 선택하지 않은 ssh 패키지를 선택합니다.
ssh 패키지를 푸는 중입니다 (.../ssh_1%3a5.8p1-1ubuntu3_all.deb에서) ...
전에 선택하지 않은 ssh-import-id 패키지를 선택합니다.
ssh-import-id 패키지를 푸는 중입니다 (.../ssh-import-id_2.4-0ubuntu1_all.deb에서) ...
ureadahead에 대한 트리거를 처리하는 중입니다 ...
ureadahead will be reprofiled on next reboot
ufw에 대한 트리거를 처리하는 중입니다 ...
man-db에 대한 트리거를 처리하는 중입니다 ...
openssh-server (1:5.8p1-1ubuntu3) 설정하는 중입니다 ...
Creating SSH2 RSA key; this may take some time ...
Creating SSH2 DSA key; this may take some time ...
Creating SSH2 ECDSA key; this may take some time ...
ssh start/running, process 2269
ssh (1:5.8p1-1ubuntu3) 설정하는 중입니다 ...
ssh-import-id (2.4-0ubuntu1) 설정하는 중입니다 ...

root@LinuxX86:~# netstat -an | grep 22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
unix  2      [ ACC ]     STREAM     LISTENING     12233    /tmp/orbit-root/linc-560-0-1518fc7536d6f
unix  2      [ ACC ]     STREAM     LISTENING     12512    /tmp/orbit-root/linc-565-0-4f2232506ca1d
unix  3      [ ]         STREAM     CONNECTED     95922    
unix  3      [ ]         STREAM     CONNECTED     89422    
unix  3      [ ]         STREAM     CONNECTED     89227    @/tmp/dbus-fOkFW0NrVY
unix  3      [ ]         STREAM     CONNECTED     89226    
unix  3      [ ]         STREAM     CONNECTED     14229    @/tmp/dbus-Sak9TTKEjZ
unix  3      [ ]         STREAM     CONNECTED     14228    
unix  3      [ ]         STREAM     CONNECTED     13422    @/tmp/dbus-Sak9TTKEjZ
unix  3      [ ]         STREAM     CONNECTED     13229    @/dbus-vfs-daemon/socket-gfqq0cYX
unix  3      [ ]         STREAM     CONNECTED     13228    
unix  3      [ ]         STREAM     CONNECTED     13227    @/dbus-vfs-daemon/socket-WorU5Rtl
unix  3      [ ]         STREAM     CONNECTED     13226    
unix  3      [ ]         STREAM     CONNECTED     13223    @/tmp/dbus-Sak9TTKEjZ
unix  3      [ ]         STREAM     CONNECTED     13222    
unix  3      [ ]         STREAM     CONNECTED     12822    @/tmp/dbus-Sak9TTKEjZ
unix  3      [ ]         STREAM     CONNECTED     12722    
unix  3      [ ]         STREAM     CONNECTED     12514    /tmp/orbit-root/linc-565-0-4f2232506ca1d
unix  3      [ ]         STREAM     CONNECTED     12282    @/tmp/dbus-Sak9TTKEjZ
unix  3      [ ]         STREAM     CONNECTED     12281    
unix  3      [ ]         STREAM     CONNECTED     12279    @/tmp/.X11-unix/X0
unix  3      [ ]         STREAM     CONNECTED     12278    
unix  3      [ ]         STREAM     CONNECTED     12237    @/tmp/dbus-D8SLrW5Y4G
unix  3      [ ]         STREAM     CONNECTED     12236    
unix  3      [ ]         STREAM     CONNECTED     12235    /tmp/orbit-root/linc-560-0-1518fc7536d6f
unix  3      [ ]         STREAM     CONNECTED     12234    
unix  3      [ ]         STREAM     CONNECTED     12232    /tmp/orbit-root/linc-52a-0-383f5f20ef551
unix  3      [ ]         STREAM     CONNECTED     12231    
unix  3      [ ]         STREAM     CONNECTED     12217    @/tmp/.X11-unix/X0
unix  3      [ ]         STREAM     CONNECTED     12216    
unix  3      [ ]         STREAM     CONNECTED     9229     /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     9228     
unix  3      [ ]         STREAM     CONNECTED     7722     /var/run/dbus/system_bus_socket
root@LinuxX86:~# 

여기까지 했으면, 우분투 쪽의 서버 설치는 완료된 것입니다. 이제 윈도우 같으면 mstsc.exe와 같은 클라이언트 측 접속 프로그램을 설치해야 하는데요. 저는 윈도우 7에서 우분투 쪽으로 접속할 것이기 때문에 다음의 경로에서 "NX Client for Windows"를 다운로드했습니다.

NX Client for Windows  
; http://www.nomachine.com/download-package.php?Prod_Id=3565

설치 후 "NX Client for Windows"를 실행해서 우분투가 설치된 PC의 IP를 지정해서 연결하면 정상적으로 원격 접속이 이뤄집니다. 비록 윈도우의 RDP 만큼은 아니지만, 확실히 VNC에 비해서는 좋아진 것을 체감할 수 있었는데... 음... 리눅스가 점점 더 편리해지는 것 같습니다. ^^




개인적으로, 위의 우분투 이외에 Hyper-V의 가상 머신에 CentOS 6까지 설치를 해놓았는데요. 아쉽게도 FreeNX 제품이 CentOS 6은 지원하지를 않았습니다. 찾아보니 다음과 같은 글이 나오는데요.

How to install FreeNX on Centos 6 and connect from intel mac
; http://www.centos.org/modules/newbb/viewtopic.php?topic_id=32959&forum=56

위의 글에 따라 아래와 같이 실행하고,

# yum groupinstall "GNOME Desktop Environment" "X Window System"

FreeNX를 설치하라는 아래의 구문은 그런 패키지가 없다고 오류가 발생했습니다.

# yum groupinstall "FreeNX and NX" 

댓글에 보면, 현재 개발중이라면서 아래의 2가지 모듈을 소개하는데요.


설치는 그런대로 잘 진행이 되었으나 아래의 명령어 실행 단계에서 오류가 발생했습니다.

# nxsetup --install --clean --purge --setup-nomachine-key

참고로, CentOS의 경우 OpenSSH는 다음의 자료를 이용해서 설치를 했습니다.

CentOS SSH Installation And Configuration
; http://www.cyberciti.biz/faq/centos-ssh/

암튼, 이렇게 해보았지만 "NX Client for Windows" 프로그램에서 연결을 할 때 "Authentication failed."라는 오류만 발생할 뿐이었습니다.

Linux Terminal Services using NX and FreeNX - Troubleshooting
; http://alien.slackbook.org/dokuwiki/doku.php?id=slackware:nx 

NX> 203 NXSSH running with pid: 6721
NX> 285 Enabling check on switch command
NX> 285 Enabling skip of SSH config files
NX> 200 Connected to address: 192.168.2.21 on port: 22
NX> 202 Authenticating user: nx
NX> 208 Using auth method: publickey
NX> 204 Authentication failed.

오류 메시지는 위에서 설명한 것과 동일한데, 해결책으로 제시된 "/var/lib/nxserver/nxhome" 폴더 자체가 없어서 포기했습니다. 오류 추적은 일단 여기까지 하고 포기! ^^ 혹시 CentOS 6 운영체제에서 원격 데스크톱 연결을 성공하신 분은 공유 좀 부탁드리겠습니다.




이외에, 반대로 리눅스에서 윈도우로 원격 데스크톱 연결하는 것도 찾을 수 있었습니다.

리눅스 컴퓨터에서 윈도우즈 컴퓨터로 원격 데스크톱 연결하는 방법 (rdesktop 사용법) 
; http://kldp.org/node/99781

iPad에서도 윈도우로의 원격 데스크톱이 되므로 별로 놀랄 일은 아니지만, 암튼 ^^ 리눅스의 상호 운영성이 편해진 것만은 분명한 것 같습니다.

그 외에 freerdp라는 것도 있는데요.

freerdp 0.8.2 RPM Download
; http://pkgs.org/centos-6-rhel-6/epel-i386/freerdp-0.8.2-1.el6.i686.rpm.html

위의 RPM을 다운로드 받아서 실행하니 다음과 같이 의존성 오류가 발생합니다.

linux_rdp_1.png

내용을 잘 보면 해결해야 할 의존성 목록이 보이는데, 동일한 웹 페이지의 하단에서 아래와 같이 다운로드 받을 수 있는 링크가 제공됩니다.

freerdp-libs = 0.8.2-1.el6
; http://pkgs.org/download/freerdp-libs

libfreerdpchanman.so.0
; http://pkgs.org/download/libfreerdpchanman.so.0

libfreerdpkbd.so.0
; http://pkgs.org/download/libfreerdpkbd.so.0   

freerdp-plugins = 0.8.2-1.el6
; http://pkgs.org/download/freerdp-plugins

libfreerdp.so.0
; http://pkgs.org/download/libfreerdp.so.0

직접 해보니, "freerdp-plugins = 0.8.2-1.el6", "libfreerdp.so.0" 2가지 정도만 다운로드해서 설치를 해도 의존성 문제가 해결되었습니다.

리눅스의 원격 데스크톱 이야기는 여기서 끝!




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 6/28/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2014-01-12 04시31분
정성태
2017-01-10 12시58분
정성태
2020-08-03 01시15분
정성태

... 46  47  48  49  50  51  52  [53]  54  55  56  57  58  59  60  ...
NoWriterDateCnt.TitleFile(s)
12615정성태4/26/202114059오류 유형: 712. Microsoft Live 로그인 - 계정을 선택하는(Pick an account) 화면에서 진행이 안 되는 문제
12614정성태4/24/202118409개발 환경 구성: 570. C# - Azure AD 인증을 지원하는 ASP.NET Core/5+ 웹 애플리케이션 예제 구성 [4]파일 다운로드1
12613정성태4/23/202116745.NET Framework: 1048. C# - ETW 이벤트의 Keywords에 속한 EventId 구하는 방법 (2) 관리 코드파일 다운로드1
12612정성태4/23/202116601.NET Framework: 1047. C# - ETW 이벤트의 Keywords에 속한 EventId 구하는 방법 (1) PInvoke파일 다운로드1
12611정성태4/22/202115465오류 유형: 711. 닷넷 EXE 실행 오류 - Mixed mode assembly is build against version 'v2.0.50727' of the runtime
12610정성태4/22/202115382.NET Framework: 1046. C# - 컴파일 시점에 참조할 수 없는 타입을 포함한 이벤트 핸들러를 Reflection을 이용해 구독하는 방법파일 다운로드1
12609정성태4/22/202117916.NET Framework: 1045. C# - 런타임 시점에 이벤트 핸들러를 만들어 Reflection을 이용해 구독하는 방법파일 다운로드1
12608정성태4/21/202118467.NET Framework: 1044. C# - Generic Host를 이용해 .NET 5로 리눅스 daemon 프로그램 만드는 방법 [9]파일 다운로드1
12607정성태4/21/202115677.NET Framework: 1043. C# - 실행 시점에 동적으로 Delegate 타입을 만드는 방법파일 다운로드1
12606정성태4/21/202121576.NET Framework: 1042. C# - enum 값을 int로 암시적(implicit) 형변환하는 방법? [2]파일 다운로드1
12605정성태4/18/202116909.NET Framework: 1041. C# - AssemblyID, ModuleID를 관리 코드에서 구하는 방법파일 다운로드1
12604정성태4/18/202114797VS.NET IDE: 163. 비주얼 스튜디오 속성 창의 "Build(빌드)" / "Configuration(구성)"에서의 "활성" 의미
12603정성태4/16/202116469VS.NET IDE: 162. 비주얼 스튜디오 - 상속받은 컨트롤이 디자인 창에서 지원되지 않는 문제
12602정성태4/16/202117527VS.NET IDE: 161. x64 DLL 프로젝트의 컨트롤이 Visual Studio의 Designer에서 보이지 않는 문제 [1]
12601정성태4/15/202116567.NET Framework: 1040. C# - REST API 대신 github 클라이언트 라이브러리를 통해 프로그래밍으로 접근
12600정성태4/15/202116810.NET Framework: 1039. C# - Kubeconfig의 token 설정 및 인증서 구성을 자동화하는 프로그램
12599정성태4/14/202117581.NET Framework: 1038. C# - 인증서 및 키 파일로부터 pfx/p12 파일을 생성하는 방법파일 다운로드1
12598정성태4/14/202118172.NET Framework: 1037. openssl의 PEM 개인키 파일을 .NET RSACryptoServiceProvider에서 사용하는 방법 (2)파일 다운로드1
12597정성태4/13/202117744개발 환경 구성: 569. csproj의 내용을 공통 설정할 수 있는 Directory.Build.targets / Directory.Build.props 파일
12596정성태4/12/202117103개발 환경 구성: 568. Windows의 80 포트 점유를 해제하는 방법
12595정성태4/12/202116851.NET Framework: 1036. SQL 서버 - varbinary 타입에 대한 문자열의 CAST, CONVERT 변환을 C# 코드로 구현
12594정성태4/11/202116283.NET Framework: 1035. C# - kubectl 명령어 또는 REST API 대신 Kubernetes 클라이언트 라이브러리를 통해 프로그래밍으로 접근 [1]파일 다운로드1
12593정성태4/10/202117333개발 환경 구성: 567. Docker Desktop for Windows - kubectl proxy 없이 k8s 대시보드 접근 방법
12592정성태4/10/202116831개발 환경 구성: 566. Docker Desktop for Windows - k8s dashboard의 Kubeconfig 로그인 및 Skip 방법
12591정성태4/9/202120748.NET Framework: 1034. C# - byte 배열을 Hex(16진수) 문자열로 고속 변환하는 방법 [2]파일 다운로드1
12590정성태4/9/202116886.NET Framework: 1033. C# - .NET 4.0 이하에서 Console.IsInputRedirected 구현 [1]
... 46  47  48  49  50  51  52  [53]  54  55  56  57  58  59  60  ...