SSH 원격 접속 설정
Ubuntu 홈서버 구축기· 5 / 15
- 1 — 홈서버 구축 과정 정리
- 2 — 운영체제 선택과 설치
- 3 — Rufus로 Ubuntu USB 부팅 디스크 만들기
- 4 — Windows 디스크 파티셔닝과 Ubuntu 설치
- 5 — SSH 원격 접속 설정
- 6 — 방화벽 설정
- 7 — Cloudflare DNS 설정
- 8 — Nginx 설치와 리버스 프록시
- 9 — Nginx SSL/TLS 발급과 자동 갱신
- 10 — MySQL 설치와 설정
- 11 — Node.js 설치와 백엔드 애플리케이션 실행
- 12 — DHCP Reservation으로 내부 IP 고정
- 13 — 포트 포워딩
- 14 — 동적 DNS(DDNS) 개념과 테스트
- 15 — ddclient으로 동적 DNS(DDNS) 자동화
지난 문서까지 개인 노트북에 Ubuntu 운영체제를 설치하는 과정을 다뤘다.
하지만 아직 컴퓨터에 운영체제만 설치되어 있는 것이기 때문에, 서버로서 조작하기 위해 기본적인 시스템 설정이 필요하다. 이 파트에서는 그중 SSH 설정에 대해 다룬다.
SSH(Secure Shell)
SSH는 안전하게 원격 서버에 접속하고 관리할 수 있도록 해주는 네트워크 프로토콜이다.
보통 SSH 키 기반 인증을 통해 원격 접속과 Github와 같은 버전 관리 서비스의 push / pull 작업에 사용되며, 22 포트 사용으로 익숙한 프로토콜이다.
익숙하지만 직접 설정한 적이 없는 이유는, 대체로 AWS의 EC2 서비스로 서버를 렌탈할 경우 SSH 설정이 기본으로 되어 있기 때문에, 별도로 처리할 일이 없었기 때문이다.
SSH 키 기반 인증
서버에 SSH 프로토콜 소프트웨어를 실행하면, 기본적으로 외부에서는 서버의 비밀번호만 알고 있다면 원격으로 접속할 수 있다.
하지만 비밀번호를 이용한 접속은 보안적인 측면에서 취약하므로, 키 인증 방식을 통해 신뢰할 수 있는 클라이언트 컴퓨터만 접속하도록 설정하는 것이 좋다.
키 인증 방식은 사용자가 개인 키(Private Key) 를 제시하면, 서버에서 등록된 공개 키(Public Key) 와 비교하여 인증하는 방식이다.
- 개인 키 ⇒ 클라이언트가 보관하고 인증 시 제시함(
파일명: id_rsa) - 공개 키 ⇒ 서버가 보관하고 제시된 개인 키와 비교 인증함(
파일명: id_rsa.pub)
SSH 설정
패키지 설치부터 키 인증 방식 적용까지, 실제 서버에서 SSH 설정을 진행한다.
패키지 설치 및 실행
Ubuntu OS에는 SSH 소프트웨어 패키지가 기본으로 설치되어 있지 않기 때문에 별도의 설치가 필요하다.
-
패키지 설치
sudo apt install openssh-server -
SSH 서비스 실행 및 자동 실행 설정
패키지 설치 후 SSH 서비스를 실행하고, 서버 부팅 시 자동으로 실행되도록 시스템에 등록한다.
sudo systemctl start ssh sudo systemctl enable ssh -
SSH 서비스 상태 확인
sudo systemctl status ssh
SSH 키 인증 설정
-
SSH 인증 키 생성
로컬에 이미 SSH 인증 키가 있다면, 해당 키를 그대로 사용하면 된다. 없을 경우 새로 생성한다.
ssh-keygen -t rsa -b 4096 -
공개 키 복사
서버에 보관되는 SSH 공개 키는
.ssh디렉토리의authorized_keys라는 이름(SSH 프로토콜 표준)의 파일로 추가해주어야 한다.authorized_keys파일의 존재만으로도 자동으로 키 인증이 진행된다.-
방법 1) 파일 복사
# 클라이언트 컴퓨터 ssh-copy-id server_username@server_ip # or scp ~/.ssh/id_rsa.pub server_username@server_ip:~/.ssh/authorized_keys파일 복사를 하지 못하는 경우에는 클라이언트 컴퓨터의 공개 키의 내용을 복사해서 서버에 직접 파일로 만들어 추가해주면 된다.
-
방법 2) 내용 복사 및 파일 생성
# 클라이언트 컴퓨터 cat ~/.ssh/id_rsa.pub # 서버 컴퓨터 vim ~/.ssh/authorized_keys
-
-
파일 및 디렉토리 권한 설정
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys -
SSH 환경 설정
키 인증을 설정했다면, 비밀번호 인증 절차는 제외시킨다.
sudo vim /etc/ssh/sshd_config # PasswordAuthentication yes ⇒ no -
SSH 서비스 재시작
모든 설정이 완료되면, SSH 서비스를 재시작하여 설정을 적용한다.
sudo systemctl restart ssh
SSH 원격 접속
ssh 프로토콜 서버 접속 명령어를 입력하면 키 인증이 진행되고, 개인 키의 비밀번호 입력하면 접속할 수 있다.
ssh server_username@server_ip
참고 자료
- [1] 집에서 홈서버 구축해보자 - 3 (우분투 설치 및 SSH, 공유기 포트 포워딩)↗