본문 바로가기

글로벌 네트워크

아두이노와 라즈베리 파이 4 - 원격 접속

안녕하세요? 오늘은 라즈베리 파이를 원격 접속으로 사용하는 방법에 관해 이야기하려고 합니다. 라즈베리 파이로 무언가를 해보려고 마음은 먹었는데, 막상 모니터와 키보드, 마우스를 연결하려니 조금은 귀찮아지는 것도 사실입니다. 잡다하게 연결된 각종 선도 눈에 거슬리고, 구석에 처박아 둔 작은 모니터(그것도 최소한 DVI는 지원해야 함)도 없다면 라즈베리 파이용으로 모니터와 키보드, 마우스를 새로 장만하기도 그렇죠? 이럴 때는 속도를 약간 제물로 삼아 기존에 사용하고 있는 큰 모니터와 키보드, 마우스를 그대로 써먹을 수 있는데, 이 방법이 바로 원격 접속입니다. 원격 접속은 터미널만 사용하는 방법과 그래픽 데스크탑까지 사용하는 방법이 있는데, 오늘은 이 두 가지를 말씀드리고자 합니다.


참고로 이 내용은 지난 글에서 말씀드린 오라일리의 Getting Started with Raspberry Pi(오라일리 페이지, 아마존 페이지)에 지면상 전체적인 틀만 소개되었습니다. 이 자리를 빌려 아쉬움을 달래보겠습니다.


스물세 번째 이야기

라즈베리 파이, 원격 접속


게시일: 2013년 3월 19일

작성자: 배장열


Getting Started with Raspberry Pi(오라일리 페이지, 아마존 페이지)에는 관련 내용을 헤드리스로 실행(Running Headless)한다고 표현했습니다. 곧 출간할 한국어판에도 다른 용어를 사용하지 않고 원음 그대로(는 아니고요, 약간 덜 떨어진 발음임) 헤드리스로 표현했습니다. 모니터와 키보드, 마우스가 없는 모습을 빗댄 것 같지만, 저는 오히려 헤드만 있는 상태로 생각합니다. 굳이 영어로 하자면 헤드 온리(head-only)가 되겠죠. 뭐 먼저 이름 붙인 사람 마음이니 마음에 들지 않아도 그냥 써야겠죠. 한 가지 말씀드리면 원래 모니터, 키보드, 마우스가 없는 시스템을 헤드리스 시스템이라고 합니다. 어찌 됐든 준비물부터 말씀드리겠습니다. 오해하시는 분들이 계셔서요.


  • 라즈베리 파이 보드
  • 전원
  • 네트워크 접속

 

첫 번째는 말씀드릴 이유가 없을 테고요, 두 번째 전원에 대해 언급하겠습니다. 라즈베리 파이가 동작하는 데 필요한 전원은 5V, 최소 700mA(모델 B 기준, 모델 A는 최소 500mA)입니다. USB 포트에 꽂을 수 있는 마이크로USB 케이블이 있는데요. 이 마이크로USB 케이블을 노트북이나 피씨의 USB 포트에 꽂아 전원을 공급받아도 되는지 궁금하신 분들이 많은 것 같습니다. 결론부터 말씀드리면 저도 모릅니다. 무책임하죠? 원칙만 말씀드리겠습니다. 보통 USB 2.0 포트의 출력 전압과 버스 전류는 5V, 500mA입니다. USB 3.0에서는 전류만 900mA로 늘어났습니다. USB 2.0 포트에 모델 B를 사용한다면 모자라는 전원이 보이시나요?


세 번째 네트워크 접속입니다. 요즘 유무선 공유기를 많이들 사용하시니 빈 포트에 라즈베리 파이를 연결하시면 됩니다. 만일 공유기에 남은 포트가 없다면 어떻게 해야 할까요? 라즈베리 파이는 무선 랜, 즉 와이파이를 지원합니다. 라즈베리 파이가 어떤 어댑터를 지원하는지는 여기를 참고하시기 바랍니다. 피씨나 노트북에 남는 이더넷 포트가 있다면 라즈베리 파이를 거기에 연결해도 됩니다. 물론 인터넷 공유를 해야겠지요. 관련 내용은 주제에서 멀어지므로 패쓰~


이제 본격적으로 막을 올리겠습니다.


첫 번째는 ssh 사용 방법, 두 번째는 vnc(virtual network computing) 사용 방법입니다. 첫 번째에서는 원격 접속을 받아주는 서버, 즉 ssh 서버가 라즈베리 파이에서 활성화돼 있어야 합니다. ssh 서버 활성화가 디폴트인데, 이를 확인하려면 모니터를 연결해 라즈베리 파이를 시작해야겠죠? 두 번째에서는 vnc를 받아주는 서버, 즉 vnc 서버가 실행돼 있어야 합니다. vnc 서버는 라즈베리 파이에 제공되지 않으므로 따로 설치하셔야 합니다. 각 방법마다 접속할 곳에서 필요한 것은 해당 클라이언트입니다. 그러니까 ssh 클라이언트, vnc 클라이언트(뷰어)가 있어야 합니다.


첫 번째 방법부터 살펴볼까요? 우선 라즈베리 파이에서 ssh 서버가 활성화 상태인지 확인하는 과정입니다. 혹시 활성화 상태가 아니라면 활성화 상태로 바꿔주어야겠죠? 라즈베리 파이가 시작하면, 터미널을 열고(데스크탑으로 직행하지 않았다면 그냥 그대로~) 다음을 입력합니다.


sudo raspi-config


그런 다음, 그림대로 따라 하시면 됩니다.


<그림 23-1>



<그림 23-2>


<그림 23-3>


이제 종료하고 라즈베리 파이를 셧다운합니다(지난 이야기에서 소개한 명령 참고). 이제 모니터와 키보드, 마우스는 필요없습니다. 사실 진짜 이야기는 여기서부터겠네요.


라즈베리 파이를 공유기 등에 연결하고 시작(부팅)합니다. 라즈베리 파이의 상태 LED가 깜빡거리는 것이 보이실 겁니다. 상태 LED는 모두 5개가 있는데, 아래 그림을 참고하세요. Getting Started with Raspberry Pi(오라일리 페이지아마존 페이지)에 실린 그림 가운데 일부입니다.


<그림 23-4>


ACT는 SD 카드 액세스, PWR은 전원, 100은 100Mbps 네트워크를 가리킵니다. 여기서 잠깐! 라즈베리 파이의 IP 주소를 아시나요? 라즈베리 파이가 공유기에 연결됐다면 대개 192.168.0.xxx에 해당하는 IP 주소를 가지고 있을 겁니다. 이 IP 주소를 알아야 이후 과정을 진행할 수 있습니다. 굳이 라즈베리 파이에서 IP를 확인하지 않아도 쉽게 알 수 있으니 관련 이야기는 생략하겠습니다.


이제 Mac이나 Linux에서 터미널을 엽니다. 다음 명령을 입력하는 것으로 모두 끝입니다. IP 주소에는 여러분이 사용하는 라즈베리 파이의 주소를 입력해야 합니다. -l 스위치는 사용자를 지정하기 위한 것인데, 라즈베리 파이의 디폴트 사용자명은 pi이고, 패스워드는 raspberry입니다.


ssh 192.168.xxx.xxx -l pi


또는

 

ssh pi@192.168.xxx.xxx


패스워드를 물어오면 해당하는 것을 입력합니다. 아래 그림이 결과 화면입니다. 쉘의 프롬프트가 바뀌었죠?


<그림 23-5>


Windows 환경에서라면 PuTTY라는 프로그램을 사용할 것입니다. 다른 프로그램을 사용하셔도 상관없습니다.


아래 그림에 보이는 대로 해당 IP 주소를 입력하고 Open을 클릭합니다. 사용자명과 패스워드를 올바로 입력하면 접속 끝! 보안 경고가 하나 등장하는데 확인만 해주시면 됩니다. 이제부터는 Windows 환경이 아니라 리눅스라는 점 잊지 마시길!


<그림 23-6>


<그림 23-7>


이제 두 번째 방법을 살펴볼까요? ssh는 Mac이나 Linux에서 기본으로 지원하지만 vnc는 그렇지 못합니다. 우선 라즈베리 파이에서 사용할 vnc 서버로는 보통 TightVNC를 많이 추천합니다. 여기서도 사용하겠습니다. vnc 클라이언트로는 Mac이나 Linux, Windows가 모두 지원되는 RealVnc의 VNC를 사용할 것입니다. 무료 버전도 있고, 유료 버전도 있는데, 무료 버전으로도 충분하겠죠? 참고로 RealVnc의 VNC는 서버, 클라이언트 모두 Mac, Linux, Windows용으로 제공됩니다. 여기서는 클라이언트만 사용하기로 하겠습니다.


상황 설명을 마쳤으니 본론으로 들어가겠습니다. 라즈베리 파이에서 TightVNC를 설치하고 실행해야겠죠? 라즈베리 파이에서 패키지(애플리케이션)를 설치하려면 apt-get install, 패키지를 삭제하려면 apt-get purge를 사용합니다. 둘 다 관리자 명령이니 sudo를 함께 실행해야 합니다.


일단 라즈베리 파이에 ssh로든 PuTTY로든 원격 접속합니다. 그리고 다음 명령으로 TightVNC를 설치합니다.


sudo apt-get install tightvncserver


이제 라즈베리 파이에서 vnc 서버를 실행할 차례입니다. 다음과 같이 명령을 입력합니다.


vncserver :1


숫자 1입니다. 패스워드를 물어오는데, 이는 vnc 클라이언트가 vnc 서버에 접속하기 위한 패스워드입니다. 패스워드가 너무 짧으면 짧다고 투덜거리고 바로 끝내버립니다. 네가지가 없죠. 다시 실행하고 8자 정도로 패스워드를 지정합니다. “Would you like to enter a view-only password (y/n)?”라고 물어옵니다. 대충 의미 파악하시고 n을 입력합니다. 서버 설정은 여기까지입니다.


이제 클라이언트로 접속만 하면 되겠죠? RealVnc의 VNC는 서버, 클라이언트 모두 Mac, Linux, Windows용으로 제공된다고 말씀드렸으니, 애플리케이션 사용 방법은 대동소이합니다. 여기(http://www.realvnc.com)에 접속하셔서 여러분이 사용하시는 운영체제용 vnc 뷰어를 설치하시면 됩니다. 저는 Mac용을 다운로드하여 설치했습니다. 아래 그림처럼 라즈베리 파이가 사용하는 IP 주소와 포트를 입력하고 Connect를 클릭합니다. 이때 보안 경고가 나오는데, 가볍게 무시하시고 Continue를 클릭합니다. 여기까지가 아래 그림입니다.


<그림 23-8>


<그림 23-9>


한 가지 주의할 점이 있습니다. 패스워드를 물어오는데, 이는 잠시 전 말씀드린 대로 사용자 계정의 패스워드가 아니라 vnc 서버에서 클라이언트의 접속을 허용하는 패스워드입니다. 8자였죠? 아래 그림은 원격 접속한 라즈베리 파이의 그래픽 데스크탑 화면입니다. 화면 윗쪽 가운데에 툴바가 보이시죠?


<그림 23-10>


오늘은 여기까지입니다. 마지막으로 주의할 점 한 가지 말씀드리겠습니다. 볼일(?)을 다 보시고 이 화면에서 그냥 종료하지 마시고 vnc 뷰어의 연결을 닫은 다음, ssh나 PuTTY에서도 반드시 셧다운 명령을 사용하여 라즈베리 파이를 종료하시는 것이 여러모로 좋습니다. 셧다운 명령은 지난 이야기에서 살펴본 대로입니다. 다시 말씀드릴까요?


sudo shutdown -h now


라즈베리 파이의 상태 LED 중에서 PWR만 켜지게 되면 셧다운된 것입니다. 곧 출간될 Getting Started with Raspberry Pi의 한국어판이 궁금하신 분들께서는 영문판의 오라일리 페이지아마존 페이지를 참조하시기 바랍니다. 앞으로는 아두이노와 결합하여 활용하는 사례도 소개할 예정이니, 아두이노에 대해 미리 살펴보시려면 “레시피로 배우는 아두이노 쿡북(제2판)”을 참조하시기 바랍니다. 읽어주셔서 고맙습니다.