🙋‍♀️ Infra

[미니 프로젝트] (3) - 미니 PC로 홈서버 구축하기

수댕ʕت̫͡ʔ 2025. 3. 13. 00:36

마지막으로 가장 중요한 보안을 신경써야한다.

 

사실 여기까지하면 내 비밀번호만 알고있으면 누구나 내 미니 PC에 원격 접속을 할 수 있다!

이 부분은 보안에 취약하고, 심각하면 내 중요한 정보를 탈취할수도 있는 문제가 발생할 수 있다.

 

그래서 비밀번호 설정이 아닌 SSH key를 이용해 접속하는 방식으로 바꿨다.

 

먼저 개념을 생각해보자. ssh 키를 생성하게 되면 비밀키와 공개키가 만들어진다. 

여기서 서버의 공개키는 클라이언트가 보낸 응답을 검증하는 역할을 한다.

 

1. 클라이언트에서 SSH 키 생성

클라이언트에서 SSH 키를 생성한다.

ssh-keygen 명령어를 통해 비밀키 + 공개키를 만들 수 있다.

 

2. 서버에게 공개키 저장

그 후, 서버에 접속해서 공개키를 저장해준다.

 

3. SSH KEY를 통해 SSH 접속

이런 과정을 거친다.

 

이제 직접 설정을 해보자.

🔑 SSH KEY 생성

다음 명령어로 ssh 키를 생성해준다. 그리고 기본설정을 유지하려면 계속 Enter 키를 치면 된다.

ssh-keygen

 

그 후에 이 경로로 이동하면 다음과 같이 ssh 키가 생성된 것을 확인할 수 있다.

 

💻 공개키 서버로 이동

공개키를 서버로 이동해줘야한다. 위에 id_ed25519.pub를 복사해준다. 

그 후 아래 명령어를 통해 공개키를 authorized_keys 파일에 붙여넣고 Ctrl X + Y 를 해주면 된다.

mkdir ~/.ssh
touch ~/.ssh/authorized_keys
chmod 755 ~/.ssh/authorized_keys
nano ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

 

그럼 끝!

 

클라이언트에서 ssh 접속을 시도하면 비밀번호 없이 접속되는 것을 확인할 수 있다.

❌ 비밀번호 접속 차단

나는 참고로 이제 ssh key만을 이용해 접속하게 할 것이기 때문에 비밀번호 접속은 차단해놓았다.

 

서버에 이 명령어를 통해 설정에 들어간 후,

sudo nano /etc/ssh/sshd_config

 

맨 아래에 다음 두 줄을 추가해준다.

PasswordAuthentication no
PubkeyAuthentication yes

 

마지막으로 ssh 서비스를 재시작하면 끝!

sudo systemctl restart ssh

 

🙋‍♀️ 참고

참고로 ssh 접속할 때 ip를 입력해주기 귀찮으니 확장자 없는 config 를 생성해서 접속할 수도 있다.

Host myserver
    HostName 123.456.789.222
    Port 22
    User server_name

 

이렇게 파일을 만들어주고

ssh myserver

 

이 명령어를 통해 ssh 원격 접속을 할 수 있다.

 

 

미니 PC 서버 구축 일기 끝~~!!