고급협동조합의 OSM
article thumbnail

1. Wi-Fi 연결하기


※ 라즈베리 파이에 랜선을 연결했다면 이 부분은 건너뛰어도 됩니다.

 

패키지를 업데이트하고, ssh, sftp 통신을 하려면 인터넷 연결이 필수적입니다. 다음 명령어를 입력하세요.

sudo nano /etc/netplan/50-cloud-init.yaml

========= 코드 설명 ==========
1. /etc/netplan/에 위치한 50-cloud-init.yaml 텍스트 파일을 nano 편집기로 연다.

50-cloud-init.yaml 파일을 nano 편집기로 연 모습.

처음에는 파일에 위와 같은 내용밖에 없을 것입니다. ethernets와 version 사이에 아래 내용을 추가해 주세요.

wifis:
	wlan0:
		dhcp4: true
		optional: true
		access-points:
			"(Wi-Fi 이름)":
				password: "(비밀번호)"

그러면 아래와 같이 됩니다.

 

파일을 수정한 모습.

Ctrl+O로 파일을 저장하고, Ctrl+X로 편집기를 빠져나오세요. 그리고 아래 명령어를 입력하세요.

sudo netplan apply
ifconfig

========== 코드 설명 ===========
1. 아까 바꾼 파일을 netplan 서비스에 적용한다(= Wi-Fi 연결 시도).
2. 인터넷 연결 정보를 표시한다.

ifconfig를 실행한 모습.

eth0은 이더넷(랜선), wlan0은 무선랜(Wi-Fi) 연결 정보를 의미합니다. 여기에 뜨는 ip 주소를 기억해 두세요. 이때 ip 주소는 eth0/wlan0 둘 중 어느 것을 기억해도 무방합니다.

 

 

2. 우분투 패키지 업데이트


라즈베리 파이의 경우에도 우분투 패키지 업데이트 방법은 똑같습니다.

sudo apt update
sudo apt full-upgrade
sudo apt autoremove

========== 코드 설명 ==========
1. 설치할 수 있는 패키지의 목록을 업데이트한다.
2. 업데이트할 수 있는 패키지를 (의존성까지) 모두 업데이트한다.
3. 불필요하게 설치된 패키지를 삭제한다.

 ※ 참고: apt full-upgrade = apt-get dist-upgrade 입니다.

 

라즈베리 파이의 CPU는 속도가 일반 데스크톱이나 노트북만큼 빠르지 않기 때문에, 터미널이 멈춘 것처럼 보이는 순간이 자주 생깁니다. 이때 작업은 제대로 진행 중인데 속도가 너무 느린 건지, 아니면 응답 없음 상태인지 알고 싶을 때는 다음 명령어를 입력하시면 됩니다.

top

========== 코드 설명 ==========
1. 작업 관리자 top을 실행한다.

top을 실행한 모습.
apt update를 실행한 모습. 목록 맨 위에 apt-check 프로세스가 자리잡고 있다.

top은 윈도우에서의 작업 관리자라고 보시면 됩니다. 활발하게 실행 중인 프로세스는 굵은 글씨로 표시되고, CPU, RAM 자원을 많이 먹는 프로세스는 맨 위에 표시됩니다. CPU가 열심히 일하고 있다면 단순히 작업이 오래 걸리는 것이고, CPU가 놀고 있으면 응답 없음 상태라고 봐도 됩니다.

 

gem 프로세스가 열심히 돌아가고 있습니다.
make -j4를 실행한 모습. 스레드 4개가 동시에 돌아가고 있습니다.

이때 %CPU에 뜨는 값은 CPU 전체 점유율이 아닌, 코어 1개에서의 점유율입니다.  바로 위 이미지를 보면 코어 3개가 거의 100%, 하나가 50%의 이용률을 보여주고 있죠(라즈베리 파이 4 모델 B는 쿼드코어 제품입니다).

라즈베리 파이에 각종 패키지를 설치할 때 가장 시간을 많이 잡아먹는 것은 바로 컴파일 작업입니다. top에서는 cc1(C언어)과 cc1plus(C++)이라는 이름으로 표시됩니다. 나중에 nginx를 설치할 때 다시 언급하겠지만, 컴파일 시간 20분이 설치 시간의 대부분을 차지합니다.

 

 

3. SSH 설치 및 설정하기


SSH는 개인 컴퓨터의 터미널에서 라즈베리 파이의 터미널을 조작할 수 있는 통신 방식입니다. 라즈베리 파이의 화면을 가져오는 것은 아닙니다. 화면 공유는 다른 블로그의 글을 참조하세요.

SSH 통신을 위해서는 개인 컴퓨터에 SSH 클라이언트, 라즈베리 파이에 SSH 서버를 설치해야 합니다. 다행히도 우분투 서버를 설치하셨다면, SSH 서버 패키지가 기본적으로 딸려 나옵니다(우분투 데스크톱을 설치하셨다면, SSH 서버 패키지를 직접 설치해야 할 수도 있습니다).

 

개인 컴퓨터가 Windows 운영체제를 사용하고 있다면, SSH 클라이언트를 별도로 설치해야 합니다. 보통 putty를 많이 쓰는데, 자세한 설치/사용법은 blog.naver.com/jeonsr/221792705148을 참조하세요.

 

SSH 접속프로그램 PuTTY 사용법

SSH 프로토콜은 웹호스팅을 이용하거나, 리눅스서버에 접속하기 위하여 사용하는 원격접속 툴이다.​Pu...

blog.naver.com

개인 컴퓨터가 OS X이나 Linux(우분투 등...)를 사용하고 있다면, SSH 클라이언트가 기본적으로 설치되어 있습니다.

 

라즈베리 파이에 연결하기 위해서는 먼저 라즈베리 파이가 어느 ip 주소에 연결되어 있는지 알아내야 합니다. 아까 확인했던 ip 주소를 사용하되, 조건이 있습니다.

 

1. 자신의 ip가

10.0.0.0 ~ 10.255.255.255

172.16.0.0 ~ 172.31.255.255

192.168.0.0 ~ 192.168.255.255 (= 사설 ip)에 속해 있을 경우

→ 반드시 라즈베리 파이와 개인 컴퓨터를 같은 네트워크에 연결해야 합니다.

(IPv6의 사설 ip는 찾아봐도 잘 안 나오네요. 혹시 00:00:00:00:00:00 형태의 ip 주소만 뜬다면 일단 두 기기를 같은 네트워크에 연결해 주세요.)

 

2. 그렇지 않은 경우

→ 라즈베리 파이와 개인 컴퓨터가 서로 다른 네트워크에 연결되어 있어도 무방

 

터미널을 열고, 다음 명령어를 입력하세요.

ssh ubuntu@(라즈베리 파이의 ip 주소)

========== 코드 설명 ==========
1. (라즈베리 파이의 ip 주소)에 연결되어 있는 기기의 ubuntu 계정으로 ssh 접속한다.

ssh ubuntu@192.168.0.15를 입력한 모습.

그러면 비밀번호를 입력하라 하는데, 라즈베리 파이의 ubuntu 계정 비밀번호를 입력하세요.

이때 아무것도 뜨지 않거나, 비밀번호를 입력했는데 Permission Denied가 뜬다면 다음 두 가지 중 하나입니다.

 

1. SSH 서버 프로세스가 꺼져 있다.

2. 라즈베리 파이가 꺼져 있거나 응답 없음 상태이다.

3. 22번 포트가 방화벽에 막혀 있다.

 

1. SSH 서버가 켜져 있는지 확인하려면 다음 명령어를 입력하세요.

service --status-all

========== 코드 설명 ==========
1. 작동 중인 모든 서비스와 작동 상태를 나열한다.

service --status-all을 실행한 모습.

[ + ]   ssh라는 줄이 있으면 SSH 서버가 정상적으로 가동되는 것입니다. 만약 없다면 다음 명령어로 SSH 서버를 시작하세요.

sudo service ssh start

========== 코드 설명 ==========
1. ssh 서비스를 시작한다.

 

2. 그래도 SSH 서버가 시작이 안 된다? 컴퓨터가 말을 안 들으면 재부팅이 답이라고들 하죠. 재부팅하려면 다음 명령어를 입력하세요.

sudo reboot

========== 코드 설명 ==========
1. 컴퓨터를 다시 시작한다.

 

3. 우분투에서는 기본적으로 iptables라는 방화벽과 이 방화벽을 쉽게 사용하기 위한 ufw 패키지가 설치되어 있습니다. 22번 포트를 방화벽에서 허용하려면 다음 명령어를 입력하세요.

sudo ufw allow 22

========== 코드 설명 ==========
1. 22번 포트로 정보(패킷)이 들어오고 나가는 것을 허용한다(tcp/udp 모두).

이렇게 했는데도 안 되면 정말 답이 없는 상황입니다. 공유기가 있다면 '공유기 포트포워딩'이라고 검색해서 공유기에서도 22번 포트를 풀어 보세요. 만약 공유기가 없는데도 문제가 생긴다면 통신사에 문의해 보는 게 좋겠습니다.

 

OS X에서 SSH 클라이언트를 실행하는 더 자세한 방법은 eunguru.tistory.com/122를 참조하세요.

 

Mac에서 기본 터미널로 SSH 연결하기

Mac OS X는 UNIX기반의 운영체제로서 OpenSSH SSH Client와 SSH Server를 기본적으로 포함하고 있다. Mac에서 사용할 수 있는 다양한 SSH 클라이언트 프로그램이 있지만, 훌륭한 프로그램은 상용프로그램이

eunguru.tistory.com

 

4. STFP 사용하기


이제 라즈베리 파이에 모니터를 연결하지 않고도 개인 컴퓨터에서 라즈베리 파이를 다룰 수 있게 되었습니다. 그렇다면 라즈베리 파이에 USB를 꽂지 않고 원격으로 파일을 전송하는 방법은 없을까요?

있습니다. 바로 21번 포트를 이용하는 FTP 통신 규격입니다. 다만 요즘은 보안이 FTP보다 좋은 SFTP를 더 많이 사용하죠. SFTP는 SSH와 같은 22번 포트를 이용합니다. SFTP를 이용할 거면 (우분투에) FTP 서버는 따로 깔 필요가 없습니다. 정말 다행이죠.

 

그렇다면 FTP 클라이언트(대부분의 FTP 클라이언트는 SFTP 통신도 지원합니다)가 필요한데, 무엇을 쓰면 좋을까요? 사람마다 의견이 다르겠지만, 저는 가장 많이 쓰이는 파일질라(FileZilla)를 사용했습니다.

파일질라 클라이언트는 filezilla-project.org/download.php?type=client에서 다운로드할 수 있습니다(WIndows, OS X, Linux 지원).

 

Download FileZilla Client for Windows (64bit)

Download FileZilla Client for Windows (64bit) The latest stable version of FileZilla Client is 3.51.0 Please select the file appropriate for your platform below. Please select your edition of FileZilla Client FileZilla FileZilla with manual FileZilla Pro S

filezilla-project.org

파일질라 클라이언트.

왼쪽 위에 있는 설정 아이콘을 누르세요.

 

FTP 접속 설정 화면.

호스트에는 라즈베리 파이의 ip 주소(아까 말한 제약 조건을 지켜야 합니다!), 포트는 22, 프로토콜은 SFTP, 로그온 유형은 일반(비밀번호를 미리 입력해 둠), 비밀번호 묻기(연결할 때마다 비밀번호를 입력) 중 하나를 선택합니다. 비밀번호는 라즈베리 파이의 ubuntu 계정 비밀번호입니다.

 

라즈베리 파이에 SFTP 연결한 모습.

확인을 누르면 위쪽 콘솔 창에 로그가 막 뜨더니 오른쪽에 라즈베리 파일의 디렉토리가 보일 겁니다. 만약 에러가 뜬다면 먼저 파일질라를 껐다 켜고, 그래도 안 되면 위에 적어 놓은 3가지 해결 방법을 다시 해 보세요.

 

다음 글에서는 ssh와 ftp를 이용해 본격적으로 taginfo를 구축하는 방법을 설명하도록 하겠습니다.

 

※ 참고: root 계정으로 FTP 접속하는 방법: chandong83.tistory.com/53, root 계정에 비밀번호 거는 방법: seyblog.tistory.com/11

 

ssh 접속시 루트(root) 제한(Permission denied) 해제하는 방법

docker를 이용하여 ssh를 접속할때 root 권한으로 접속을 하게 된다. 하지만 기본적으로 루트 권한으로는 ssh를 이용하여 접속이 제한되어 있다. 이때 다음 파일을 수정하면  해결이 된다. 참고로

chandong83.tistory.com

 

우분투 리눅스 root계정 비밀번호 변경 및 권한 획득

이번에는 root계정과 사용에 대해서 알려드리겠습니다.  먼저 사용법에 대해서 설명하기 전에 root에 대해서 설명드리겠습니다. root란 리눅스와 같은 유닉스 계열의 운영체제의 최고 관리자 ID를

seyblog.tistory.com

 

 

profile

고급협동조합의 OSM

@고급협동조합

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!