본문 바로가기
개발/Linux

라즈베리파이에 ssh로 접속하기

by jungcow 2024. 1. 29.

1. 문제 상황

환경

  • raspberry pi 4, ubuntu 20.04
  • windows 10

접근 상황

  • ssh server : 라즈베리파이4
  • ssh client : 윈도우 10

ssh접속을 위해 라즈베리파이를 ssh의 서버로 하고, 윈도우 데스크톱에서 Putty를 ssh client로 사용하려 했다. 근데 다른 블로그에서 나와 있는 모든 방법들을 해봤는데도 마지막에는 접속이 되지 않았다. 이를 해결했고, 따라서 기록하고자 한다.

2. 시도한 것

라즈베리파이 - ssh 활성화

sudo raspi-config

 

위 명령어를 통해, 라즈베리파이의 ssh를 활성화 해주었다. 아래 링크에 보다 자세한 과정이 나온다.

https://m.blog.naver.com/dsz08082/222098622936

 

[Raspberrypi] 라즈베리파이 SSH 원격 접속 설정

라즈베리파이 SSH 원격 접속 설정 SSH : Secure SHell의 약자로 원격 시스템에서 명령을 실행할 ...

blog.naver.com

라즈베리파이 - ip주소 확인

ifconfig

명령어를 통해 라즈베리파이의 ip주소를 확인 해주었다. 유선으로 연결 했으면 eth0에, 와이파이로 인터넷에 연결되어 있다면 wlan0에서 ip주소를 확인할 수 있었다.

위의 사진에서 ip주소를 확인하고, 여기까지가 라즈베리파이에서 설정하는 과정이었다. 이후 윈도우 데스크톱으로 넘어간다.

 

윈도우 10 데스크톱 - putty 설치

putty를 설치해준다. 구글에 putty 설치 검색하면 바로 공식 홈페이지에서 설치를 할 수 있다. 아래 링크를 첨부한다.

https://putty.softonic.kr/

 

PuTTY

PuTTY - 개발자에게 꼭 필요한 도구

putty.softonic.kr

윈도우 10 데스크톱 - putty 로 접속

위 사진에서 Host Name 칸에, 위 [라즈베리파이 - ip주소 확인] 에서 확인한 ip주소를 넣고, 22번 포트를 넣어주었다. 

 

3. 결과

Connection timed out

원래라면 위 과정에서 login 화면이 뜨는 것으로 접속이 잘 되었어야 했는데, 위와 같은 에러가 뜬다. 이를 해결하기 위해 여러 블로그를 뒤져 보았지만, 나와 다른 상황이었는지 해결이 되지 않았다. 봤었던 해결 과정은 아래 리스트와 같다.

  • 윈도우 데스크톱 - 외부 ip로 접속하기 위한 포트포워딩
  • 윈도우 데스크톱 - PuTTY의 Connection의 keep-alive 항목을 300으로 늘려 대기 시간을 늘림
  • 라즈베리파이 - openssh-server, openssh-client 를 apt-get을 이용해 설치
  • 라즈베리파이 - /etc/ssh/sshd_config 파일에서 Port 22 주석 해제

위 모두 문제를 해결해주진 못했다. 따라서 아래에 내 상황에서의 해결 과정을 정리하고자 한다.

 

4. 해결 과정

1. 라즈베리파이 외부 ip 확인

현재 나의 경우엔 한 공간에 여러개의 공유기가 있는 상황이다. 이를 간과하고 있었다.

라즈베리파이에서 인터넷에 find my address 를 검색한 후 아래 링크로 들어가면 라즈베리파이가 접속한 공유기의 외부 ip를 확인할 수 있다.

https://whatismyipaddress.com/

위 링크로 접속을 한 결과, 데스크톱과 외부 ip가 달랐다. 즉 데스크톱이 연결된 공유기와 라즈베리파이가 연결된 공유기가 서로 달랐다. 따라서 다른 블로그에서 PuTTY를 통해 접속이 성공했던 지점에서 나는 실패했던 것이다.

 

2. 라즈베리파이의 와이파이 변경

바로 라즈베리파이의 와이파이를 데스크톱이 연결된 공유기로 바꿨다. 이후 데스크톱에서 PuTTY를 이용해 접속을 한 결과 아주 성공적으로 연결할 수 있었다.

 

3. 그럼 왜 외부 IP로 접속하기 위한 포트포워딩 방법으로는 접속이 되지 않았던가?

라즈베리파이와 데스크톱의 외부 IP가 달랐다면, 데스크톱으로 외부 ip접속을 라즈베리파이에 시도했으면 됐던 것 아닌가? 

사실 이렇게 했으면 됐을 것이다. 하지만 라즈베리파이가 연결된 공유기에 대해 포트포워딩 작업을 해야 했던 것이다. 이를 통해 트러블슈팅을 꼼꼼하게 할 필요성을 다시금 느낀다...

 

5. 결론

결국 문제는 라즈베리파이와 데스크톱간의 외부 IP가 달랐기 때문에 데스크톱에서의 포트포워딩 작업 또한 라즈베리파이에 적용이 안되었고, 같은 내부 망에서의 접속 또한 실패하게 되었던 것이다.

 

따라서 라즈베리파이의 와이파이를 변경함으로써 간단하게 ssh 연결을 수행할 수 있게 되었다.

'개발 > Linux' 카테고리의 다른 글

라즈베리파이에 ssh로 접속하기 - 고정 IP 설정  (0) 2024.02.06