비밀번호 대신 SSH 키 사용 권장

보안을 위해서는 SSH 공개키 인증을 추천합니다.

Windows PowerShell에서:

ssh-keygen -t ed25519

그냥 Enter를 눌러 기본 경로를 사용해도 됩니다.

생성되는 주요 파일:

C:\Users\사용자\.ssh\id_ed25519
C:\Users\사용자\.ssh\id_ed25519.pub

공개키를 Ubuntu 서버에 복사합니다.

Windows에서:

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh ubuntu@192.168.0.50 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Ubuntu에서 권한을 확인합니다.

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

이제:

ssh ubuntu@192.168.0.50

비밀번호 없이 접속할 수 있습니다.


10. 비밀번호 SSH 로그인 차단

SSH 키 로그인이 정상적으로 확인된 후에만 진행하세요.

sudo nano /etc/ssh/sshd_config

다음을 설정합니다.

PasswordAuthentication no
PubkeyAuthentication yes

그리고:

sudo sshd -t
sudo systemctl restart ssh

이제 SSH 키가 없는 사용자는 비밀번호로 로그인할 수 없습니다.


11. 외부 인터넷에서 접속하려는 경우

여기서 중요한 차이가 있습니다.

같은 집/회사 내부 네트워크

Windows PC
   │
   │ SSH
   ▼
192.168.0.50
Ubuntu

이면 위 설정만 하면 됩니다.

인터넷을 통해 집/회사 Ubuntu 서버에 접속

외부 PC
   │
   │ Internet
   ▼
공유기 공인 IP
   │
   │ 포트포워딩
   ▼
Ubuntu
192.168.0.50

이라면 공유기에서 포트포워딩도 설정해야 합니다.

예를 들어 SSH를 2222번으로 사용하는 경우:

외부 포트 : 2222
내부 IP   : 192.168.0.50
내부 포트 : 2222
프로토콜  : TCP

그리고 Ubuntu:

sudo ufw allow 2222/tcp

외부 PC에서는:

ssh -p 2222 ubuntu@공인IP

12. 현재 Ubuntu의 SSH 상태 한 번에 확인

아래 명령들을 실행해보시면 됩니다.

echo "=== SSH SERVICE ==="
sudo systemctl status ssh --no-pager

echo "=== SSH PORT ==="
sudo ss -tlnp | grep ssh

echo "=== FIREWALL ==="
sudo ufw status

echo "=== IP ==="
hostname -I

echo "=== SSH CONFIG CHECK ==="
sudo sshd -t

가장 기본적인 정상 구성

SSH 서비스       active (running)
SSH 포트         22
Ubuntu IP        192.168.x.x
UFW              22/tcp ALLOW
sshd 설정        오류 없음

이면 같은 네트워크의 Windows에서:

ssh 사용자명@192.168.x.x

로 접속할 수 있습니다.


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *