본문 바로가기
로보틱스/라즈베리파이

SSH 원격연결 및 패스워드 없이 접속하기 [라즈베리파이(Raspberry Pi)]

by J-Build 2020. 8. 30.

오늘 포스팅에서는 라즈베리파이를 다른 컴퓨터에서 SSH 접속을 하는 방법을 알아보겠습니다. 만약 자주 라즈베리파이로 연결을 하게 된다면 매번 패스워드를 입력하는게 꽤나 귀찮게 느껴지는데요, 그래서 암호없이 접속할 수 있는 방법도 알아볼께요. 

준비단계

라즈베리파이를 처음 시작한다면 아래글들을 먼저 확인해주세요. 

그리고 라즈베리파이로 접속을 할 컴퓨터에 터미널을 설치해주세요. 저는 Mac 컴퓨터를 사용하고 있고 iTerm 터미널을 사용하고 있습니다. 기본 터미널이나 putty 등의 다른 터미널도 아래 방법은 동일하게 적용됩니다. 

라즈베리파이의 SSH 서비스 활성화하기

라즈베리파이의 터미널에서 raspi-config를 실행해줍니다. 

pi@raspberrypi:~ $ sudo raspi-config

 

설정 화면이 뜨면 SSH 서비스를 활성화 시켜주세요. 

 

raspi-confg를 통한 SSH 활성화

설정이 완료되었습니다. 이제 라즈베리파이의 IP를 출력해볼께요. 제 환경에서는 192.168.1.10이 라즈베리파이의 IP주소 입니다.  

pi@raspberrypi:~ $ ip -4 addr show | grep global
    inet 192.168.1.10/24 brd 192.168.1.255 scope global noprefixroute wlan0

 

그리고 라즈베리파이를 재부팅 해줍니다. 

pi@raspberrypi:~ $ sudo reboot now

 

라즈베리로 접속할 컴퓨터의 터미널에서(라즈베리파이에서 하는게 아니에요. 제 경우는 Mac 컴퓨터의 iTerm 터미널을 사용) 아래 명령으로 SSH 접속을 해볼께요. 암호 입력후 라즈베리파이에 연결이 되는것을 확인할 수 있습니다. (반드시 pi@192.168.1.10 부분을 본인의 (라즈베리파이의 접속ID)@(라즈베리파이의 IP 주소)로 바꿔주세요.)

➜  ~ ssh pi@192.168.1.10

SSH Keys 존재 확인하기

라즈베리로 접속할 컴퓨터의 터미널에서 아래 명령으로 혹시 이전에 생성된 ssh key가 있는지 확인해 봅니다. 

➜  ~ ls -al ~/.ssh

 

위의 명령으로 id_rsa.pub 파일이나 id_dsa.pub 파일이 존재한다면 SSH Keys 새로 생성하기 항목을 건너뛰고 공개키(public key)를 라즈베리파이로 복사하기 항목부터 진행하세요. 

SSH Keys 새로 생성하기

라즈베리로 접속할 컴퓨터의 터미널에서 ssh-keygen을 실행시켜줍니다. 그러면 키를 생성할 위치와 passphrase를 물어보는데 그냥 모두 Enter를 입력해서 기본값으로 설정을 해줍니다.그러면 아래와 같이 ssh key가 기본 위치(제 경우는 /Users/jlim/.ssh) 에 생성이 됩니다. 

➜  ~ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/jlim/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/jlim/.ssh/id_rsa.
Your public key has been saved in /Users/jlim/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:M3QtVQiYxRTAtwSpkdFQamx0fLZd6Iq/Jwdc+/z6ZXA jlim@iMac.local
The key's randomart image is:
+---[RSA 3072]----+
|      +O=X=o.+.  |
|     oooB *oo .  |
|      =o.=o=..   |
|     o.. .o.+    |
|        So o .. E|
|        .o+ .  o |
|         . . o  o|
|          o o o..|
|          .=  .+o|
+----[SHA256]-----+
➜  ~

 

이제 키가 생성되었는지 다시한번 확인해 보겠습니다. (참고로 제 쉘의 기본 홈인 /Users/jlim 위치는 ~ 문자와 동일합니다)

➜  ~ ls -al ~/.ssh
total 16
drwxr-xr-x  4 jlim  staff   128 30 Aug 10:42 .
drwxr-xr-x  3 jlim  staff    96 30 Aug 10:42 ..
-rw-------  1 jlim  staff  2610 30 Aug 10:42 id_rsa
-rw-r--r--  1 jlim  staff   580 30 Aug 10:42 id_rsa.pub

 

네, 정상적으로 저장이 잘 되었네요. id_rsa는 private key입니다. 저희가 사용할 키는 public key인 id_rsa.pub 입니다. 어떤 내용이 있는지 확인해 볼께요. 

➜  ~ cat ~/temp/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDAeBy78wn8BpO6tNaZVlLeqfGsgf0KpsN9uzrxBJXE+TNeZmjwxp3NHGkT3h1SGBLG2Nra2E84YyQszDcevljpx4t6tHGUAwWcWRq1NeSXl5sHLCmUXIiBYdoZZDL5rk0afY36l7zS3Kv2opSsUWVZodgKY6ZMktz+YqIDAcHmX3h2ly3xkgEa07RrKXDN4mSL6dzxMNDXhja9qDdYuZ1CETJP1Io5/6T0YhzyU//YfYENPrq0gjvgfpiWD+Fg67LV53Vj+ohLhUgF82J4pBebQHF7H8HNJFc6tVCEA2ADzRWJHJKgqWk845mCv7zHKhgU15ZzFc5UbHxboS626/jq3Tick85xvDjIBiQhv4P8h6nG9bJWHill922iyM+CdM6yQ59vI9hRD6II1lrZfLx/+x5LYJnCFR7ncfMWu+yKONVVH3GyJMpXkb4+hVDoYIkNkgKGzcginfTGbhl8wM1UJvURK1W53oYapVynDuGjYPoxTdmN+wDKCAGn6l57/CM= jlim@iMac.local

 

공개키(public key)를 라즈베리파이로 복사하기

라즈베리로 접속할 컴퓨터의 터미널에서 아래 명령을 실행시켜줍니다. 그리고 라즈베리파이 접속 패스워드를 입력하면 복사가 완료 됩니다. (반드시 pi@192.168.1.10 부분을 본인의 (라즈베리파이의 접속ID)@(라즈베리파이의 IP 주소)로 바꿔주세요.)

➜  ~ cat ~/.ssh/id_rsa.pub | ssh pi@192.168.1.10 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'

SSH 접속하기 

라즈베리로 접속할 컴퓨터의 터미널에서 아래 명령을 통해서 다시한번 라즈베리파이로 접속을 해볼께요. (반드시 pi@192.168.1.10 부분을 본인의 (라즈베리파이의 접속ID)@(라즈베리파이의 IP 주소)로 바꿔주세요.)

➜  ~ ssh pi@192.168.1.10

 

네, 암호 입력없이 빠르게 접속이 되네요. 아주 좋습니다. 

오늘 포스팅은 여기까지입니다. 

 

그럼 즐파이~! 

 

댓글