라즈베리파이(Raspberrypi os) 설정(2) - 원격접속

2020. 12. 6. 03:40라즈베리파이

위키피디아에 접속을 하여 원격접속을 검색을 하면 많은 소프트웨어 목록을 있다.
대부분 독자적인 프로토콜을 이용하거나, SSH, VNC, RDP, x11 프로토콜을 이용하는 소프트웨어로 분류할  있다.

 

Comparison of remote desktop software - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search This page is a comparison of remote desktop software available for various platforms. Remote desktop software[edit] Operating system support[edit] Features[edit] Terminology[edit] In t

en.wikipedia.org

이중에서 라즈베리파이에서 많이 사용하는 것은 VNC, RDP 프로토콜을 사용하는 프로그램들(gui사용가능) 쉘에서 사용하기 위한 SSH(cli 환경)이다.

대부분의 개인은 아래와 같은 환경일 것이다.

이 그림에서 컴퓨터는 공유기와 연결이 된것이 아니다. 이런 경우에는 공유기에 접속된 외부IP주소(또는 DDNS)가 접근주소가 되며 공유기에 포트 포워딩을 설정해야 한다. 컴퓨터가 공유기에 파이와 같이 물려 있다면 공유기에 대한 설정은 넘어가도 된다.

이때 공유기에서 portfowarding(외부에서 접속하는 포트와 내부에서 접속하는 포트를 공유기에서 지정하는 작업)
방화벽에서 공유기와 라즈베리파이와 연결되는 포트를 열어주는 작업. 프로그램에서 설정을 해주는 작업을 해야한다.

여기에서는 pi 유저를 그대로 쓰면서 공유기(iptime 공유기) 라즈베리파이를 물려서 외부포트와 내부포트를 동일하게 사용하는 것을 전재로 진행 할 것이지만, 사실은 보안상의 이유로 이렇게 사용하는 것은 지양하여야 한다.


SSH (Secure Shell)

ssh 터미널 환경으로 접속을 하며,  기본적으로 22 포트 사용한다.
리눅스 명령어에 익숙하지 않은 사람들에게는 매우 불편한 방법이지만, 워낙 기본적인 접속 방법이므로 설정을 두는 것이 좋다.

다른 SSH 관한 자세한 사항은 위키피디아를 참고하는 것이 좋다.

 

SSH (Secure Shell) - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Cryptographic network protocol SSH or Secure Shell is a cryptographic network protocol for operating network services securely over an unsecured network.[1] Typical applications includ

en.wikipedia.org

 [설정부터 사용하기 까지]

 [라즈베리파이에서]

더보기

터미널창에서 다음 명령어를 입력한다.

sudo raspi-config

화면에서 [Interface Options]  선택

SSH를 선택한다.

엔터를 누르고 <예>를 누르면 된다.

아래 화면이 나오면 완료가 된것이다.

[SSH의 포트 변경하기]

 

SSH 포트 변경하기 - 제타위키

SSH 포트 변경 sshd 포트 변경 1 개요[ | ] SSH 기본 포트는 22인데 이것을 원하는 포트로 바꿀 수 있다. 변경 후 방화벽 등에 의해 접속이 안될 수 있으니 주의! 2 현재 포트 확인[ | ] [root@zetawiki ~]# netst

zetawiki.com

설정파일의 위치는 /etc/ssh/sshd_config 이다.

sudo nano /etc/ssh/sshd.config

 

[외부에서 접속]
윈도우에서 접속을 해보자. 윈도우에서 ssh를 접속하기 위해서는 cmd창에서 접속을 하거나 다른 클라이언트 프로그램을 사용하여 접속을 한다.

<cmd창에서 접속>

더보기

윈도우 cmd창에서 ssh user@라즈베리파이주소 를 입력하면 접속이 된다.

<putty에서 접속>

더보기

putty에서 주소를 입력하고 접속을 한뒤에 

 

user와 passward를 입력하면 접속이 가능하다.


VNC 사용하기

VNC 라즈베리파이 os에서 기본적으로 제공은 해주지만, 호스트와 클라이언트간의 파일전송이 안된다. (tightvnc같은 경우는 가능하지만, 아무래도 드래그앤 드롭이 아니라서 불편하다.)
사용하는 기본포트는 5900 이다.

vnc클라이언트중 real vnc 사용해보자.

 

Virtual Network Computing - Wikipedia

Virtual Network Computing logo In computing, Virtual Network Computing (VNC) is a graphical desktop-sharing system that uses the Remote Frame Buffer protocol (RFB) to remotely control another computer. It transmits the keyboard and mouse events from one co

en.wikipedia.org

[설정부터 사용하기 까지]

[라즈베리파이에서]

sudo raspi-config

Raspi-config 에서 vnc 사용을 선택

<예> 버튼을 누른다.

Vncserver 실행하면 화면에 아이콘이 뜬다

아이콘을 오른쪽 버튼으로 눌러서 option으로 들어가면, 여러가지 설정을 변경할 있다.

[외부에서 접속]

Vnc 클라이언트 프로그램을 설치해야 한다.

대표적인 프로그램은 real vnc viewer 이다.

www.realvnc.com/en/connect/download/viewer/

 

Download VNC Viewer | VNC® Connect

 

www.realvnc.com

클라이언트 프로그램을 실행시켜서 주소를 입력하고 접속을 하면 된다.

Vnc 뷰어의 화면과 실제 라즈베리파이에서의 디스플레이에서 화면이 똑같이 움직이는 것을 있다.
(약간의 딜레이는 있다.)

 


 

RDP 사용하기

RDP Microsoft에서 개발한 프로토콜로 리눅스에서는 xRDP 사용하면 된다.
드래그앤드롭으로 파일이동도 되고, 클립보드 공유도 되기때문에 개인용도로 쓰기에 무리가 없어서 주로 쓰고 있다.

기본 포트는 3389 이다.

 

Remote Desktop Protocol - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Proprietary protocol that can provide a user with the graphical interface from another remote computer Remote Desktop Protocol (RDP) is a proprietary protocol developed by Microsoft wh

en.wikipedia.org

[설정부터 사용하기 까지]

[라즈베리파이에서]

터미널창에서 다음 명령어를 입력한다.

sudo apt-get install xrdp

Xrdp service 명령어로 제어가 가능하다.

 

Sudo service xrdp start | stop | restart | status

파이를 재시작을 하지 않고 바로 시작을 하려면  다음 명령어를 입력한다.

Sudo service xrdp start

 

[xrdp 설정 변경]

설정은 /etc/xrdp/ 위치한 Sesman.ini xrdp.ini 에서 하게 된다.

 

[xrdp.ini]

log 포트, 특정 ip에서만 접속을 허용할지에 대한 여부 등을 설정한다.

 

Sudo 편집기 /etc/xrdp/xrdp.ini 

(편집기는 주로 사용하는 편집기를 사용하면 된다. 여기서는 nano 사용할 것이다.)

Sudo nano /etc/xrdp/xrdp.ini

    ▶   접속하는 포트 변경하기
          Port = 3389 부분을 원하는 포트번호로 변경하면 된다.
          여기서 주의해야 것은 포트번호와 방화벽, 공유기의 포트포워딩시 내부포트번호와 일치시켜야 한다.

 

[sesman.ini]

세션에 대한 설정을 한다.

Sudo nano /etc/xrdp/sesman.ini

     ▶접속 세션수 변경
       MaxSession=50 부분을 변경하면 된다.

뒤에 방화벽과 공유기 설정으로 넘어가자.

 

[외부에서 접속]

윈도우에서 원격데스크톱 연결 검색해서 실행을 한다.

 

라즈베리파이 주소: xrdp 포트번호 

를 입력하고 연결을 누른다.

 

라즈베리파이의 유저네임과 비밀번호를 입력하면 된다.


SSH X11 forwarding

X11 Linux 그래픽 관리자이다.
VNC, RDP 등과는 다르게 ssh터미널로 접속해서 gui 프로그램을 실행하는 것이다.
서버인 파이에서는 따로 설치할 것은 없고, 윈도우에서 putty Xming 실행시켜야 한다.

[라즈베리파이에서]

/etc/ssh/sshd_config 에서 설정을 하면된다.

sudo nano /etc/ssh/sshd_config

X11Forwarding yes
X11Displayoffset10
X11UseLocalhost yes

주석해제를 해둔다.

 

[외부에서 접속]

putty 클라이언트를 설치할때는 포터블과 msi 파일로 제공이 되는데, 모두 상관은 없지만 msi 파일로 것을 다운받아 설치하는 것이 Xming에서 따로 설정하지 않아도 되어서 편리하다.

Putty 설치가 되었다면

다음 주소에서 Xming 프로그램을 다운받아 설치를 실행한다.

 

Xming X Server for Windows

Download Xming X Server for Windows for free. X Window System Server for Windows. Xming is the leading X Window System Server for Microsoft Windows 8/7/Vista/XP (+ server 2012/2008/2003). It is fully featured, small and fast, simple to install and because

sourceforge.net

Xming 설치가 완료되면 XLaunch, Xming 가지의 아이콘이 있다.

 

XLaunch에서는 디스플레이에 대한 설정을 하고 Xming 라즈베리파이에서 받아온 정보를 디스플레이해주는 서버를 실행시킨다.

XLaunch를 실행시켜서 Display settings를 실행시킨다.

Multiple windows를 클릭하고 다음을 누른다.

 

Session type에서는 Start no client를 클리갛고 다음을 누른다.

 

Additional parameters에서는 다음 버튼을 눌러 넘어간다.

 

마침을 눌러 종료 시킨다.

 

윈도우 메뉴에서 Xming을 실행해준다.
그러면 윈도우 작업창에 Xming가 실행이 되는걸 확인할 수 있다.

 

Xming가 실행이 되고 나서 putty를 실행을 시킨다.

위에서 SSH 접속시에 했던것과 동일하게 파이주소를 입력하고 
Category 메뉴에서 [Connection] - [SSH] - [X11] 창으로 넘어간다.
Enable X11 forwarding의 체크 메뉴에 체크를 한뒤 X display location에 localhost:0 을 입력한다.

그 다음에 Open 버튼을 누르면
라즈베리파이의 터미널이 열린다.
유저명과 패스워드를 입력하여 로그인을 한 후에 
gui 프로그램을 실행을 하면 창이 뜨면서 프로그램이 실행이 된다.

로그인 뒤에 gedit를 실행한 모습

 


[방화벽을 사용하는 경우]

기본적으로 제공되는 방화벽은 iptables이나 익숙하지 않으면 사용하기 불편한 감이 있어
우분투의 방화벽인 ufw 설치해서 사용한다.

설치
Sudo apt-get install ufw

ufw 실행
sudo ufw enable

 

 

ufw에서 포트를 열어 두기 위해서는 다음 문구를 입력한다.

 

  sudo ufw allow 포트번호
설치 후 default 값으로 설정 되는 port
SSH 22 번
VNC 5900 번
XRDP 3389 번

만약, 설정파일에서 다른 port로 할당 하였다면, 그 할당된 port를 열어 주어야 한다.

 

포트접속을 거부할 때에는 deny 옵션을 쓴다.

sudo ufw deny 포트번호

 

 현재 열러 있는 포트를 보기 위해서는 다음의 명령어를 입력한다.

sudo ufw status 

삭제를 위해서는 각 allow/deny 포트번호 로 입력을 하는데
각 규칙의 번호를 입력하는 것이 더 편하다.

sudo ufw status numbered


로 규칙에 부여된 숫자( 괄호[]안의 숫자)를 보고 규칙을 삭제하면 된다.

위에서 20번째 규칙을 삭제하려면 

sudo ufw delete 20 


을 입력하고 y를 입력하면 삭제가 된다.

 

 


[공유기와 접속하는 컴퓨터가 분리되어 있지 않는 경우]

더보기

이 경우에는 방화벽 설정  바로 사용이 가능하다.

 

[공유기와 접속하는 컴퓨터가 분리되어 있는 경우]

더보기

공유기에서는 포트포워딩 설정에서 변경을 해주면 된다.
여기서 주의할 점은 내부 포트와 리눅스 각 설정파일과 방화벽에서 설정한 포트번호가 같아야 한다.

공유기의 설정 페이지에 접속을 하여 포트포워딩 항목을 클릭한다.
ip
 port 적는데, ip 라즈베리파이의 ip 적고 포트를 적는다.

<만약 외부접속포트와 내부통신 포트를 다르게 하고 싶다면, 다르게 설정하면 된다. 
다만 이때에는 내부통신 포트와 sshd에서 지정한 포트가 일치하여야 한다. 
마찬가지로 여러대의 컴퓨터에서 ssh 이용하고자 한다면 각각 외부포트와 내부포트를 설정하고  컴퓨터마다 서비스 위한 port 설정해 주어야 한다.>

 

공유기에서는 포트포워딩 설정에서 변경을 해주면 된다.

공유기의 설정 페이지에 접속을 하여 포트포워딩 항목을 클릭한다.
ip
 port 적는데, ip 라즈베리파이의 ip 적고 포트를 적는다.

만약 외부접속포트와 내부통신 포트를 다르게 하고 싶다면, 다르게 설정하면 된다.
마찬가지로 여러대의 컴퓨터에서 서비스 이용하고자 한다면 각각 외부포트와 내부포트를 설정하고  컴퓨터마다 설정해 주어야 한다.