안녕하세요? 오늘은 라즈베리 파이를 원격 접속으로 사용하는 방법에 관해 이야기하려고 합니다. 라즈베리 파이로 무언가를 해보려고 마음은 먹었는데, 막상 모니터와 키보드, 마우스를 연결하려니 조금은 귀찮아지는 것도 사실입니다. 잡다하게 연결된 각종 선도 눈에 거슬리고, 구석에 처박아 둔 작은 모니터(그것도 최소한 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판)”을 참조하시기 바랍니다. 읽어주셔서 고맙습니다.

댓글을 달아 주세요

  1.  댓글주소  수정/삭제  댓글쓰기 Favicon of http://jswlinux.tistory.com/ BlogIcon Seony 2013.04.11 12:28 신고

    안녕하세요. 지나가다 잠깐 적어봅니다.
    sudo shutdown -h now 라는 길다란 명령어도 있지만, 짧게 줄여서 sudo poweroff 라고쳐도 똑같은 동작을 한답니다.
    수고하세요

    •  댓글주소  수정/삭제 Favicon of http://jpub.tistory.com BlogIcon 제이펍 2013.04.12 16:50 신고

      좋은 팁 감사합니다. 앞으로도 지나가다가 좋은 말씀 많이 해주세요. 다른 분들에게 도움이 될 것 같네요. ^^ 감사합니다.

  2.  댓글주소  수정/삭제  댓글쓰기 nobody 2013.05.13 00:50 신고

    안녕하세요. 원격 접속을 위해 찾아들어와 배우고 갑니다. 감사합니다.
    그런데 질문이 있습니다. 셧다운을 할 경우 라즈베리파이가 아예 종료되니까 파워를 다시 넣어줘야 부팅이 되는데, 외부에서 접속할 경우 그게 불가능한 상황이 되어서.. 만약 셧다운을 하지 않는다면, 어떤 점이 좋지 않은 것인지 알고 싶습니다.

    •  댓글주소  수정/삭제 배장열 2013.05.13 09:33 신고

      안녕하세요. 도움이 되셨다니 고맙습니다.
      원격 접속 시에도 셧다운은 가능합니다.
      ssh 터미널에서나 vnc에서도 정상적으로 종료할 수 있으며, 라즈베리 파이의 상태 LED를 확인해보시면 정상적으로 종료되었는지 알 수 있습니다.
      라즈베리 파이가 정상적으로 종료되지 않으면 문제가 생길 수 있습니다.
      다른 컴퓨터에서와 별반 다르지 않습니다.
      고맙습니다.

    •  댓글주소  수정/삭제 nobody 2013.05.13 12:56 신고

      답변 감사드립니다. 그런데 제가 좀 잘못 전달해 드린 것 같아요. 종료는 할 수 있는데, 제가 밖에 나와 있는 경우 종료 후 파워를 다시 넣어주는 게 힘들어서.. 그리고 만약 뭔가 서버로서 다른 기능을 돌리고 있다면(홈페이지를 만들어 띄워둔 상태라든지), 셧다운을 하면 안되는 거 아닌가 해서, ssh 접속 후 접속종료를 할 때 셧다운을 하지 않으면 어떨까 했어요. 그런데 셧다운을 권장하시길래, 만약 셧다운을 하지 않으면 어떤 불이익이 있나 궁금해서요..!

    •  댓글주소  수정/삭제 배장열 2013.05.13 13:24 신고

      서버로 쓰신다면야 종료하시면 안 되겠죠.
      계속 켜 놓아도 괜찮은지 물으신 거라면...
      불이익 없습니다. 전기요금 말고는...
      그런데 라즈베리 파이는 전기요금 걱정하지 않으셔도 됩니다.
      별로 아니 거의 먹지 않습니다. 그것이 라즈베리 파이의 장점입니다. ^^

  3.  댓글주소  수정/삭제  댓글쓰기 Question 2013.07.21 13:39 신고

    저....죄송한데요...
    제가 서버접속시도를 했는데...

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
    Someone could be eavesdropping on you right now (man-in-the-middle attack)!
    It is also possible that the RSA host key has just been changed.
    The fingerprint for the RSA key sent by the remote host is
    da:cc:4d:b4:33:8b:36:1b:53:a1:16:d0:a1:bb:70:bb.
    Please contact your system administrator.
    Add correct host key in /Users/leesengwon/.ssh/known_hosts to get rid of this message.
    Offending key in /Users/leesengwon/.ssh/known_hosts:2
    RSA host key for 192.168.0.11 has changed and you have requested strict checking.
    Host key verification failed.
    이렇게 뜨네요?
    해결방법이 없을까요?
    도와주세요...

    •  댓글주소  수정/삭제 배장열 2013.07.22 17:35 신고

      안녕하세요.
      클라이언트에서 .ssh 디렉터리에 known_hosts라는 파일이 있습니다.
      이 파일을 지우고 다시 해보시면 될 겁니다.
      안 되시면 사용하시는 운영체제와 원격 쉘 프로그램이 무엇인지 알려주세요.
      다시 답변드리겠습니다.

  4.  댓글주소  수정/삭제  댓글쓰기 라즈베리배우는중! 2013.09.30 04:46 신고

    안녕하세요. ssh를 putty로 window에서 원격제어를 하려고하는데 안되네요..ㅠㅠ

    사진 첨부하여서 메일로 상세한사항 질문드렸는데 답변 가능하신지요?

    제 이메일은 kitboy89@naver.com입니다. 이 댓글 작성후 보낼게요

    •  댓글주소  수정/삭제 배장열 2013.09.30 10:28 신고

      안녕하세요.
      파이와 윈도가 같은 네트워크에 있는 것이 아닌가요?
      파이나 윈도의 putty나 어떤 "구체적인 설정"을 해야 하는 것이 아니라서
      같은 네트워크에만 있다면 오류가 일어날 이유가 없습니다.
      192로 시작하는 IP 주소는 사설 네트워크이기 때문에 외부에서는 보이지 않습니다.
      파이와 윈도가 같은 네트워크에 있는지 확인하시고, 파이를 재부팅한 뒤 다시 한번 해보세요. 안 되시면 putty 시작 화면(오류 화면 아님)을 제 메일로 보내주세요.
      justdoit709@gmail.com입니다.
      고맙습니다.

    •  댓글주소  수정/삭제 라즈베리배우는중! 2013.09.30 11:58 신고

      빠른답변 감사합니다!

      같은 네트워크에 있지 않으면 안되는것이군요..

      집에 도착하는데로 다시해보겠습니다

    •  댓글주소  수정/삭제 배장열 2013.09.30 12:40 신고

      한 마디 덧붙이자면,
      외부에서도 파이에 원격으로 접속하려면
      공유기의 설정을 바꿔야 합니다.
      요즘에는 공유기가 대부분 ddns를 지원합니다.
      ddns를 설정하시면 같은 네트워크에 있지 않아도
      인터넷만 연결돼 있다면 얼마든지 원격 접속이 가능합니다.
      ddns에 관한 내용은 여기서 말씀드리기 곤란하므로 직접 검색해 보심이...
      고맙습니다.

    •  댓글주소  수정/삭제 라즈베리배우는중! 2013.09.30 12:56 신고

      아 감사합니다.ㅠ

      내부 네트워크끼리 안되서 뭐 검색해보니 포트설정도하고 뭐도해야하고 할게 많더군요.. 시간이 없어서

      그냥 스마트폰테더링해서 pc와 보드 둘 다 테더링 와이파이를 사용했더니 그냥되네요..어젠 왜 이생각을못했는지.ㅠ

      192.168로 되는건 기본적으로 내부네트워크끼리만 되는군요

      학교갔다와서 자세히 다시보겠습니다 고마워요 ㅎㅎ

  5.  댓글주소  수정/삭제  댓글쓰기 Favicon of http://kokia.tistory.com BlogIcon 잉여새 2014.03.13 21:33 신고

    안녕하세요!
    글을 읽다가 궁금한것이 생겨서 질문드립니다!
    제가 라즈베리파이를 구매하였는데 집에서는 연결할수있는 출력장치가 하나도 없어서..
    원격접속으로(ㅠㅠ)제어를 하고자 합니다..

    윗글에서 "라즈베리 파이에서 IP를 확인하지 않아도 쉽게 알 수 있으니 관련 이야기는 생략하겠습니다"라고
    말씀을 하셨는데 그 ip주소 확인법을 알 수 있을까요 ;ㅅ;

    ...아이피는 한번씩 노가다해서 어떻게 접속을 성공했습니다!
    그런데 sudo apt-get install tightvncserver 이 명령을 실행하니
    E: Unable to locate package tightvncsever 이런 에러가 뜨는데
    어떠한 이유인지 알 수 있을까요 ;ㅅ;


    아 참고로 저는 지금 mac osx를 사용중입니다.
    답변 부탁드립니다!

    •  댓글주소  수정/삭제 배장열 2014.03.13 22:51 신고

      안녕하세요.
      라즈베리 파이의 ip 주소를 알려면
      터미널에서 ifconfig를 실행해도 되고,
      라즈베리 파이가 공유기에 연결된 상태라면,
      공유기 설정 페이지에서
      내부 네트워크 정보를 확인해도 됩니다.
      공유기에서 내부 네트워크 정보를 확인하면
      raspberrypi라는 이름으로
      어떤 내부 ip를 할당 받았는지 분명하게 나타납니다.
      말씀하신 문장은 그런 의미입니다.

      그리고 말씀하신 오류는,
      인터넷 연결에 문제가 있거나
      실제로 명령을 입력할 때 철자 오류가 있거나 등입니다.
      상황을 구체적으로 다시 한 번 말씀해 주시기 바랍니다.
      화면을 캡처해 보내주시려면 제 메일(justdoit709@gmail.com)을
      이용하시기 바랍니다.

      그리고
      라즈베리 파이의 운영체제인 라즈비안 등에 관해서는
      최근 출간된 <리눅스와 함께하는 라즈베리 파이>를
      참고하시기 바랍니다. ^^
      라즈베리 파이의 이모저모와 라즈비안 리눅스를
      쉽고 깊이 있게 배우실 수 있습니다. ^-^

  6.  댓글주소  수정/삭제  댓글쓰기 Favicon of http://kokia.tistory.com BlogIcon 잉여새 2014.03.15 09:38 신고

    답변 감사드립니다!!
    말씀해주신 책 어제 구매해서 읽어보는 중입니다!! ㅎㅎ

    •  댓글주소  수정/삭제 Favicon of http://lemonflavor.tistory.com BlogIcon 레몬에이드 2014.03.17 18:08 신고

      빠른 구매까지! 감사합니다~ ^^
      저도 요즘 리눅스 공부하면서 재미 느끼고 있는데
      많은 도움이 되시면 좋겠네요!
      즐거운 한 주 보내세요!

  7.  댓글주소  수정/삭제  댓글쓰기 짱짱 2014.07.26 14:53 신고

    저는 이대로 따라했는데 왜 화면에 까만 박스가 뜨고 한참 있다가 timeout...... 어쩌고 메세지가 뜨는 걸까요?
    모든 걸 다 따라 했거든요.

    •  댓글주소  수정/삭제 배장열 2014.07.26 23:44 신고

      안녕하세요.
      죄송하지만 어떤 상황인지 저로서는 알 수가 없습니다.
      제 메일, justdoit709@gmail.com로 캡처 화면을 보내 주시든가
      이곳에 좀 더 구체적으로 상황을 말씀해 주시기 바랍니다.
      고맙습니다.

  8.  댓글주소  수정/삭제  댓글쓰기 어렵네요 2015.01.27 15:14 신고

    192.168.1.13 이건 라즈베리 ip주소인건 알겠는데요 putty에서 192.168.0.6 이건 어떤것에 ip주소인가요?ㅜㅜ

    •  댓글주소  수정/삭제 배장열 2015.01.27 17:15 신고

      안녕하세요.
      본의 아니게 혼동을 일으켜서 죄송합니다.
      둘 다 라즈베리 파이의 IP 주소입니다.
      캡처한 환경이 달라서 라즈베리 파이의 주소가 달라졌습니다.
      어렵네요님의 환경에서 사용되는 라즈베리 파이 주소를 사용하시면 됩니다.
      고맙습니다.

  9.  댓글주소  수정/삭제  댓글쓰기 질문남 2015.08.25 11:35 신고

    PI에 tightvncserver 설치후 원격 접속되는데요
    인터넷 창을 뛰울 경우 원격화면에서만 보이고 실제 파이와 연결한 모니터에서는 인터넷창이 안보입니다.
    해결 방법이 있을까요?

    •  댓글주소  수정/삭제 배장열 2015.08.25 12:35 신고

      안 보이는 게 정상입니다.

      원격으로 파이에 접속했으니 연결된 파이를 연결한 컴퓨터에서 원격으로 조종하는 거지요. 연결된 파이에는 뭔가 화면에 표시되는 것이 없습니다.



티스토리 툴바