단순히 원격으로 SSH로 접속하면 그게 바로 headless 환경이 되는 것 같다~
어찌보면 단순 호기심으로 해봤지만~ 라즈베리파이와 컴퓨터만 있다면 어디에서든 접속할 수 있다는 매력이 있는 것 같다.
headless라고 하면 모니터, 키보드, 마우스가 없는 상태에서 하는 것을 의미한다고 하는데..
그냥 다른 컴에서 원격으로 접속해서 사용하겠다 뭐.. 그런 말 ㅋㅋ
사실 원격으로 하니깐 내 컴퓨터의 모니터를 보면서 키보드로 입력하면서..
이게 무슨 헤드레스야? 했다가...
생각을 해보니..
오로지 usb전원 케이블로만 연결되어 빨강 led만 깜빡거리며..
구석에 혼자 외롭게(?) 덩그러니 있는 것을 보니.. headless가 맞는거 같다..
먼저 라즈베리파이 os가 설치되어 있어야한다. 그리고 모니터와 키보드 마우스로 모든 셋팅을 한 다음에
ssh로 접속을 하는 것을 추천한다!
혹시라도 headless로만 접속을 해야하는 경우가 생긴다면.. 참고해보자
먼저 라즈베리파이는 HDMI 포트를 제공한다. 위에서 말한대로..
HDMI로 모니터를 연결하고 키보드 마우스를 USB에 연결할 수 있으니.. 연결해서 쓰는 것을 강추!
사실 먼저 셋팅을 다 한 후에 ssh로 접속해서 사용하는 것이, 빠르고 쉽고 현명하다!
자~ 삽질을 시작한다! ㅋㅋㅋ
집 모니터에는 hdmi 가 없다.. 아니 하나 있는 거 같은데.. 모르겠다 ㅋㅋ 사실 나는 이미 처음부터 headless가 타켓이였다!
라즈베리 OS가 설치된 Micro SD카드를 usb 리더기에 꽂은다음에
마운트를 시켜준다.
그냥 편하게 file 브라우저로 더블클릭해서 마운트를 시키자
마운트 된 sd카드의 /boot 로 이동
cd /boot
여기에 ssh라는 파일을 만들어 준다. 확장자, 내용 필요없음
$touch ssh
이제 ssh파일이 있으면 라즈베리파이가 부팅될 때 ssh가 허용되게 설정이 바뀐다고 한다. 그리고 ssh로 만들어 놓은 파일은 지워진다.
그 다음은 wpa_supplicant.conf 파일을 만들어서 와이파이 연결 설정을 해줘야함
경로는 마찬가지로 /boot 안이다
vi wpa_supplicant.conf
아래의 내용을 추가
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=US
저장 하고 빠져나온다. country는 일단 미국으로 하는게 좋다고 한다.
그리고 이제 와이파이의 ssid와 패스워드가 필요하다.
와이파이 ssid는 와이파이 검색했을 때 나오는 이름이다.
그리고 패스워드는 그냥 입력해도 되지만 암호화 시킬 수가 있다.
wpa_passphrase 명령어를 사용하는데, 먼저 와이파이 ssid를 입력해주면 비밀번호를 입력하라고 나온다
예:
wpa_passphrase myhomessid
그러면 명령어가 입력된 후 프롬포트 커서가 깜빡깜빡 거린다..
패스워드를 입력해주면 된다.
이를 리다이렉트를 이용해서 한번에 파일에 입력되게 해주면 된다.
$wpa_passphrase WiFi5GHOME >> ./wpa_supplicant.conf
자신의 와이파이 이름을 적어준다. 파일은 경로를 확인할 것. 엔터를 치면
커서만 깜빡거리는데 이때 패스워드를 입력해준다. 그리고 엔터
그리고 나서 vi 편집기로 wpa_supplicant.conf를 열어보면
network={
ssid="WiFi5GHOME"
#psk="123456789"
psk=2fe882f3512ab4f27139e52ab10dcb6a45212da077b0d5063031312d0ede7c86
}
입력되어 있다.
psk=라는 부분이 주석처리 되어 있는데 암호화 처리가 되어 있는데
암호가 남아있으면 이상한 것 아닌가?
지워준다음에 저장해준다.
물론 암호화 신경 안쓸 사람은
위의 네트워크 부분을 psk="123456789" 처럼 패스워드를 직접 넣어줘서 저장해도 된다.
(wpa_passphrase를 안 쓰고 위의 코드 복붙해도 됨)
이제 sd카드를 umount 한 후에 라즈베리 파이에 꽂아준 후에 부팅을 해준다.
그러면 자동으로 와이파이가 연결이 되고 ssh도 접속 가능한 상태가 된다.
참고로:
부팅이 되면. 위에서 만든 파일은 자동으로 지워지고, 그리고 파일이 아래 디렉토리에 저장됨
/etc/wpa_supplicant/wpa_supplicant.conf
모니터가 없으므로.. 조금.. 차분하게 한? 1분 기다려준다.
그리고 나서 본 메인 컴퓨터에서 터미널을 열어준 후에 ssh로 접속을 하면된다.
가령 아이피 주소가 아래라고 가정한다면..
$ssh pi@192.168.0.5
이제 암호를 물어보는데 처음 암호는 raspberry 로 되어 있다.
이제 사용을 하면 된다!
응?!
이렇게 쉽게 될리가 없지 ㅋㅋ 지금하고 있는 것은 headless 상황이기 때문에
뭐가 보여야지 당췌 ip를 알 수가 없다~ ㅋㅋㅋ
위의 상황은 ip를 알고 같은 네트워크 안에 있을 때 가능한 경우이다.
참고:
ssh로 접속을 할 때는 같은 네트워크 환경이어야 한다~
아무래도 가장 좋은 것은 라즈베리파이가 무선 와이파이를 사용하기 때문에
ssh를 사용할 컴퓨터에서도
무선 와이파이를 사용해서 같은 공유기 안에 접속이 이뤄지는게 가장 속 편하다...
그래야 내부망으로 사설 ip를 할당받아서 192.168.xxx.xxx 이런식으로..
그래서 ssh접속을 수월하게 할 수 있다.
하지만.. 외부(다른네트워크 상에서) 내부 사설ip로 접속하려면.. 포트 포워딩이란 것을 해줘야한다.
내 경우에는 포트 포워딩을 해야지 접속이 가능했다..