
이제 외부에서 이 라즈베리파이에 접속해보자.
SSH(Secure SHell)는 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그 프로토콜을 가리킨다. (from wiki)
우분투에서 먼저 터미널을 열어보자. 이 화면은 우리가 앞으로 자주 볼 화면이고, ssh로 접속해도 결국 이 화면을 보게 된다.


여기서 openssh-server라고 입력해보자. 그러면 아마도 command not found 오류가 뜰 것이다. 우리가 설치해 주어야 한다. 다음을 입력해보자. (sudo란 superuser do 의 줄임말로 윈도우즈의 관리자권한 같은 역할을 한다.)
sudo apt install openssh-server
뭔가 프로그레스가 엄청 지나가고 설치가 완료된다.
ufw는 ubuntu firewall 의 준말로, 우분투에서 방화벽을 담당하고 있다.
계속해서 터미널에서 sudo ufw status 라고 입력해보자.
helloworld@raspberry4:~$ sudo ufw status
Status: inactive
이러면 사실 방화벽이 다 열려있는 상태이긴 한데, 공부도 할겸 방화벽을 설정해보자.
sudo ufw enable
sudo ufw allow ssh
sudo ufw status
이렇게 해보면 방화벽이 이제 작동하고 ssh(22번 포트 사용)이 허용되어 있는 것을 확인할 수 있다.
결국 우리는 라즈베리파이에서 모니터를 제거할 것이다. 이 때도 아무 문제없이 부팅-네트워크잡기까지 완료해야 우리가 원격 접속을 하는데 문제가 없다. 이를 위해 hdmi를 연결하지 않아도 부팅이 되게 하자.
터미널에서 다음과 같이 입력하자.
helloworld@raspberry4:~$ cd /boot/firmware/
helloworld@raspberry4:/boot/firmware$ sudo nano config.txt
그리고 아래와 같이 hdmi_로 시작하는 두줄을 작성하자.
작성 후에는 ctrl+X, y입력으로 저장.

이렇게 하면 모니터 없이 켜더라도 잘 부팅된다.
우리는 ssh에 접속해서 뭔갈 하다가 노트북을 덮을 때도 있고, 인터넷이 안되거나, 당분간 쓰지 않을 때도 있다. 이 때 별다른 조치를 취하지 않으면 연결을 잡고 있으면서 자원을 낭비하게 되고, 다시 켰을 때 응답도 없게 된다. 이를 수정해보자.
sudo nano /etc/ssh/sshd_config
여기서 스크롤을 좀 많이 내려보면 다음과 같은 부분이 있는데 ClientAlive~부분 앞의 #을 지우고 숫자를 300(살아있다고 보고하는 주기, 300초, 5분), 3(보고가 안오면 끊는 횟수, 3번 안오면 끊어버림)으로 설정하자.

이렇게 하면 좀 안쓰고 있으면 끊기게 되고 다음 접속시 부드럽게 사용할 수 있다.
우분투에서는 마지막을 ip address 를 입력해 내 ip를 알아두자. 192.168.?.? 형태를 찾으면 그게 일반적인 가정집의 내부 네트워크 주소이다.
이제 우리의 컴퓨터의 터미널에서 해당 컴퓨터에 접속해보자.
지난번에 만들었던 계정 helloworld 와 방금 얻은 ip주소를 이용한다.
터미널에 ssh helloworld@192.168.???.??? 이렇게 입력하고, 비밀번호를 물어보면 라즈베리파이에 우분투 설치시 입력한 비번을 넣으면 된다.
아래와 같이 잘 되는 것을 확인할 수 있다.
