본문 바로가기

스마트팩토리?

[라즈베리파이] PC에서 SSH로 접근

나는 라즈베리파이를 위한 모니터를 가지고 있지 않으므로, PC에서 SSH로 라즈베리파이를 연결해 작업을 처리하고 있다. 이 방법에 대해 정리해본다.

  1. 라즈베리파이를 wifi와 연결한다.
  2. 공유기를 통해 라즈베리 파이에 할당된 주소를 찾는다.
  3. PC에서 라즈베리파이에 할당된 주소로 SSH 요청을 보내 접근한다.

라즈베리파이 wifi 연결

라즈베리파이 이미지는 공식 문서에서 제공하는 Raspberry PI Imager라는 프로그램을 이용해 만든다.

  • 사용자 정보: 라즈베리파이 유저의 이름 & 비밀번호가 된다. 차후 SSH 접속 시 사용한다.
  • 무선 LAN: 라즈베리파이가 기본으로 연결할 wifi 주소와 비밀번호를 입력한다.

 두 정보를 작성하고 SSH 사용을 활성화한 후, OS를 만들어 라즈베리파이에 연결하자. 라즈베리파이에 전원을 넣으면 입력한 무선 LAN에 자동으로 연결되며, SSH로 접속할 수 있는 상태가 된다.

 다만, 현재 라즈베리파이의 ip 주소를 모르기 때문에 바로 SSH로 접속할 수는 없다. 이 주소는 어떻게 알 수 있을까? 집 환경에서 wifi는 공유기를 통해 활성화되며, 대부분의 공유기는 간단한 설정 html 페이지를 통해 연결된 기기에 대한 정보를 제공한다. 여기서 라즈베리파이에 할당된 주소를 찾아 SSH로 연결하자.

 나는 U+ 공유기를 사용하고 있어, 이 글을 찾아 온 사람들과 페이지 구조가 다를 수 있다.

공유기를 통해 라즈베리파이에 할당된 주소 찾기

U+ 공유기 기준으로, 공유기 뒷면에 접속 경로와 초기 비밀번호가 적혀 있다. 해당 정보를 이용해 공유기에 로그인하자. 내 기준으로 첫 화면은 아래와 같이 나온다.

U+ 기준, 로그인 후 상태정보 => DHCP 할당정보로 들어가면 기기에 할당된 ip 주소를 볼 수 있다. 내 기준으로 주소 대역은 192.168. 으로 시작하는 사설 주소 대역이다. 

라즈베리파이의 기본 호스트 이름은 raspberrypi로 표현된다. ip 주소를 알았으니, 이제 SSH로 연결해보자. 만약 여기에 라즈베리파이가 보이지 않는다면 다음 상황을 의심해보자.

  1. 호스트 이름이 다르게 설정되어 있다: 라즈베리 파이를 끄고 DHCP 할당 시간이 지날 때까지 기다려보기
  2. OS를 만들 때 wifi 정보가 잘못 입력되었다: 라즈베리 파이 이미지를 다시 만들기

새 라즈베리파이를 구매했다면 wifi 정보를 잘못 입력했을 가능성이 매우매우 높다.

PC에서 라즈베리파이를 SSH로 연결하기

라즈베리파이에 사설 ip가 할당된 상태이므로, 같은 사설 ip 대역에 연결되어 있는 PC에서 SSH로 접근할 수 있다. 일반적인 ssh 명령을 사용해서 연결해봤다.

ssh 유저이름@IP주소

잘 연결된다. 하지만 CLI 콘솔창으로 개발해야 하는 문제가 있다. 이 문제는 vscode를 사용함으로써 해결 가능하다. vscode는 SSH 연결 옵션을 가지고 있으며, 이 옵션을 이용하면 마치 로컬에서 개발하듯이 연결된 기기를 개발할 수 있다.

  1. vscode에서 Remote - SSH 확장을 추가한다.
  2. ctrl + shift + p 를 클릭하여 커맨드 팔레트를 연다.
  3. ssh를 입력하여 Remote-SSH: Connect to Host...을 클릭한다.
  4. 연결할 ssh 주소와 비밀번호를 입력해 라즈베리파이 환경에 SSH로 접속한다.

vscode 확장 중 microsoft가 제공하는 Remote-SSH가 있다. 내 기억에는 해당 확장이 기본적으로 설치되어 있던 것 같기는 한데, 만약 없다면 현재 확장을 설치하자. SSH 접속한 환경을 마치 로컬에서 vscode로 개발하듯 접근할 수 있다.

ctrl + shift + p를 입력하면 커맨드 팔레트가 열린다. 여기서 ssh를 입력하면 위와 같이 Remote-SSH 옵션이 나온다. 저걸 클릭하자.

버튼을 클릭하면 이전에 구성했던 SSH 호스트 목록이 뜬다. 없다면 SSH 호스트 추가로 추가하면 된다. 호스트를 선택하고 다음 창에서 비밀번호를 입력하면 SSH로 접속된다.

접속한 환경은 vscode를 이용해 로컬에서 개발하듯 개발할 수 있다. 이 기능이 없었다면 라즈베리파이를 위한 모니터를 구매하거나, rdp를 통해 접속해 불편한 IDE로 개발해야 했을 것이다. PC => 원격으로 파일을 드래그해 복사할 수 있고, 폴더 구조나 자동 완성 기능도 지원되서 GUI가 요구되는 특수한 경우가 아니라면 vscode로 대응할 수 있다.

원격 라즈베리파이 환경에서 개발하는 모습

추가사항

현재 라즈베리파이의 주소는 DHCP에 의해 임시적으로 주소가 부여된 상황이다. DHCP는 가지고 있는 IP 대역을 요청하는 호스트에게 동적으로 할당해주는 프로토콜로, IP 주소에는 대여 기간이 존재하기 때문에 기간이 지나기 전에 갱신하거나 고정 IP를 할당해야 라즈베리파이가 가진 IP주소가 변경되는 것을 막을 수 있다.

나는 현재 라즈베리파이를 실습할 때만 켜두고 있기 때문에 시간이 지나면 할당된 ip 주소가 변경되어 위 과정을 다시 진행해야 했다. 이런 불편함을 방지하기 위해 일단 라즈베리파이에 고정 ip 주소를 할당했다.