Ubuntu SSH 설정 완전 가이드 | 설치·보안 강화·문제 해결

目次

1. 소개

Ubuntu에서 SSH를 설정하는 것은 원격 서버 관리에 있어 매우 중요합니다. SSH(Secure Shell)는 안전한 암호화 통신을 제공하는 프로토콜이며, 원격지에서 서버에 접근하여 명령을 실행하거나 파일을 전송하는 데 널리 사용됩니다. 본 기사에서는 Ubuntu에서 SSH 설정 방법을 기본 설치 절차부터 고급 보안 대책까지 자세히 설명합니다.

1.1 Ubuntu에서 SSH를 설정하는 이유

1.1.1 SSH란?

SSH(Secure Shell)는 네트워크 상에서 안전하게 통신하기 위한 프로토콜입니다. 일반적으로 SSH는 원격 서버에 로그인하고, 파일을 전송하며, 터널링(포트 포워딩) 등에 사용됩니다. SSH는 기존의 Telnet이나 FTP와 달리 통신 내용이 암호화되기 때문에 보안성이 높은 것이 특징입니다.

1.1.2 Ubuntu에서 SSH가 필요한 경우

Ubuntu를 원격으로 관리하는 시나리오에는 다음과 같은 경우가 있습니다.
  • 클라우드 서버 관리:AWS, GCP, Vultr 등 클라우드 서비스에서는 SSH를 사용해 원격으로 서버에 연결합니다。
  • LAN 환경에서의 원격 조작:사내 서버나 개발용 머신에 SSH로 접근하여 원격 작업을 수행합니다。
  • IoT 디바이스 관리:Raspberry Pi 등 임베디드 디바이스를 원격으로 제어합니다。
Ubuntu의 기본 설정에서는 SSH 서버가 비활성화되어 있습니다. 따라서 SSH를 사용하려면 수동으로 설치하고 적절히 설정해야 합니다。

2. SSH 기본 설정

Ubuntu에서 SSH를 사용하려면 SSH 서버(OpenSSH)를 설치하고 적절한 설정을 해야 합니다. 이 섹션에서는 SSH 설치 방법부터 기본 설정, 방화벽 구성, 연결 방법에 대해 자세히 설명합니다.

2.1 OpenSSH 설치 및 시작

2.1.1 OpenSSH란?

OpenSSH(Open Secure Shell)는 SSH 프로토콜을 구현한 오픈소스 소프트웨어입니다. 원격 연결뿐만 아니라 안전한 파일 전송(SCP 및 SFTP) 및 포트 포워딩 등의 기능도 제공합니다.

2.1.2 OpenSSH 설치

Ubuntu에서는 SSH 서버가 기본으로 설치되어 있지 않으므로, 아래 명령으로 설치합니다。
sudo apt update && sudo apt install -y openssh-server
이 명령은 패키지 목록을 최신 상태로 업데이트하고 OpenSSH 서버를 설치합니다。

2.1.3 SSH 서버 시작 및 자동 시작 설정

설치가 완료되면 SSH 서버를 시작하고 자동 시작을 활성화합니다。
sudo systemctl enable --now ssh
enable 옵션을 사용하면 OS 부팅 시 자동으로 SSH 서비스가 시작됩니다。

2.1.4 SSH 동작 확인

SSH 서버가 정상적으로 동작하는지 확인하려면 아래 명령을 실행합니다。
systemctl status ssh
다음과 같은 출력이 표시되면 SSH 서버가 정상적으로 실행되고 있습니다。
● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2025-02-28 12:00:00 UTC; 5min ago
만약 inactive (dead) 또는 failed와 같이 표시되면, 아래 명령으로 수동으로 시작할 수 있습니다。
sudo systemctl start ssh

2.2 방화벽(UFW) 설정

Ubuntu에서는 ufw(Uncomplicated Firewall)라는 간단히 설정할 수 있는 방화벽이 제공됩니다. SSH 연결을 허용하기 위해 UFW를 적절히 설정합니다。

2.2.1 UFW 상태 확인

먼저 현재 방화벽 상태를 확인합니다。
sudo ufw status
출력 예시 (UFW가 비활성인 경우)
Status: inactive
출력 예시 (UFW가 활성인 경우)
Status: active
To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere

2.2.2 SSH 통신 허용

SSH 기본 포트 22를 허용하려면 아래 명령을 실행합니다。
sudo ufw allow ssh
또는 포트 번호를 지정하여 명시적으로 허용할 수도 있습니다。
sudo ufw allow 22/tcp

2.2.3 UFW 활성화

UFW가 비활성인 경우 아래 명령으로 활성화합니다。
sudo ufw enable
UFW를 활성화하면 이후 모든 수신 트래픽이 기본적으로 차단되므로, SSH 연결이 허용되어 있는지 확인한 후 활성화하십시오。

2.2.4 설정 확인

방화벽 설정이 반영되었는지 다시 확인합니다。
sudo ufw status verbose
출력 예시
Status: active
To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
이와 같이 표시되면 SSH 연결이 허용된 것입니다。

2.3 SSH 기본 연결 방법

SSH 서버가 실행 중임을 확인한 후 클라이언트 PC에서 실제로 연결해 봅니다。

2.3.1 Linux/macOS에서의 연결

Linux와 macOS에서는 터미널을 열고 아래 명령을 실행합니다。
ssh 사용자명@서버의IP주소
예:
ssh user@192.168.1.100
첫 연결 시 아래와 같은 경고 메시지가 표시될 수 있습니다。
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)?
yes 를 입력하고 Enter를 누르면 연결이 확립됩니다。

2.3.2 Windows에서의 연결

Windows에서는 PowerShell 또는 PuTTY를 이용해 SSH 연결을 할 수 있습니다。 PowerShell를 사용하는 경우 Windows 10 이상에서는 PowerShell에 SSH 클라이언트가 기본 탑재되어 있습니다. 아래 명령을 실행하면 SSH 연결이 가능합니다。
ssh 사용자명@서버의IP주소
PuTTY를 사용하는 경우
  1. 공식 사이트에서 PuTTY를 다운로드·설치
  2. PuTTY를 열고 Host Name (or IP address)에 서버의 IP 주소를 입력
  3. Connection typeSSH로 설정하고 Open을 클릭
  4. 사용자명과 비밀번호를 입력

요약

이 섹션에서는 Ubuntu에서 SSH의 기본 설정 절차를 설명했습니다.
  • OpenSSH를 설치하고 시작하는 방법
  • UFW로 SSH 연결을 허용하는 설정
  • Linux/macOS 및 Windows에서의 SSH 연결 방법

3. SSH 보안 강화

SSH는 원격 연결을 가능하게 하는 편리한 도구이지만, 그대로 사용하면 보안 위험이 증가할 수 있습니다. 공격자는 무차별 대입 공격이나 포트 스캔을 통해 SSH 서버를 노리는 경우가 많습니다. 따라서 안전한 SSH 환경을 구축하기 위해 적절한 보안 설정을 하는 것이 중요합니다.

3.1 root 사용자의 로그인 금지

기본적으로 Ubuntu의 SSH 설정에서는 root 사용자 로그인 허용이 되어 있을 수 있습니다. root 계정은 시스템 전체를 관리하는 강력한 권한을 가지고 있어 공격자에게 노려지기 쉽습니다. root 로그인을 금지하고 일반 사용자 계정을 사용함으로써 보안을 향상시킵니다.

3.1.1 설정 절차

  1. SSH 설정 파일 /etc/ssh/sshd_config 을 편집합니다。
sudo nano /etc/ssh/sshd_config
  1. 다음 행을 찾아 PermitRootLogin no 로 변경합니다。
PermitRootLogin no
  1. 파일을 저장하고 SSH 서비스를 재시작합니다。
sudo systemctl restart ssh
  1. 변경이 적용되었는지 확인하려면 다음 명령을 실행합니다。
sudo grep PermitRootLogin /etc/ssh/sshd_config
출력 결과가 PermitRootLogin no 로 나타나면 설정이 올바르게 적용된 것입니다.

3.2 비밀번호 인증 비활성화와 공개키 인증 도입

SSH에서는 비밀번호 인증보다 공개키 인증을 사용하는 것이 더 안전합니다. 공개키 인증은 비밀번호 입력이 필요 없으며, SSH 키 쌍(공개키와 비밀키)을 사용해 인증하므로 무차별 대입 공격 위험을 줄일 수 있습니다.

3.2.1 SSH 키 생성

로컬 PC에서 SSH 키를 생성합니다。
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
생성이 완료되면 다음 두 파일이 생성됩니다。
  • 비밀키 (id_rsa)로컬 PC에 저장(절대로 외부에 공개하지 않음)
  • 공개키 (id_rsa.pub)서버 측에 등록

3.2.2 공개키를 서버에 전송

다음 명령을 사용하여 공개키를 서버에 전송합니다。
ssh-copy-id 사용자명@서버의IP주소

3.2.3 비밀번호 인증 비활성화

SSH 설정 파일을 엽니다。
sudo nano /etc/ssh/sshd_config
다음 행을 찾아 PasswordAuthentication no 로 변경합니다。
PasswordAuthentication no
설정을 적용하기 위해 SSH를 재시작합니다。
sudo systemctl restart ssh

3.3 특정 사용자만 SSH 접근 허용

SSH 보안을 향상시키기 위해 SSH에 접속할 수 있는 사용자를 제한할 수 있습니다。

3.3.1 설정 절차

  1. SSH 설정 파일 /etc/ssh/sshd_config 을 엽니다。
sudo nano /etc/ssh/sshd_config
  1. 허용할 사용자를 지정합니다。
AllowUsers 사용자명1 사용자명2
  1. 설정을 적용하기 위해 SSH를 재시작합니다。
sudo systemctl restart ssh

3.4 SSH 포트 변경

SSH 기본 포트 (22)는 공격자에게 노려지기 쉬우므로 포트 번호를 변경하여 보안을 향상시킬 수 있습니다。

3.4.1 설정 절차

  1. SSH 설정 파일을 엽니다。
sudo nano /etc/ssh/sshd_config
  1. Port 22 행을 찾아 예를 들어 Port 2200 와 같이 변경합니다。
Port 2200
  1. 설정을 저장하고 SSH를 재시작합니다。
sudo systemctl restart ssh

3.4.2 방화벽 설정 업데이트

포트 변경 후에는 새로운 포트 번호를 UFW로 허용합니다。
sudo ufw allow 2200/tcp
설정이 적용되었는지 확인합니다。
sudo ufw status

3.5 Fail2Ban으로 무차별 대입 공격 방지

Fail2Ban은 부정한 SSH 접근 시도를 감지하고, 일정 횟수 실패한 IP 주소를 일시적으로 차단하는 도구입니다。

3.5.1 Fail2Ban 설치

sudo apt install fail2ban -y

3.5.2 설정 파일 생성

Fail2Ban 설정 파일을 복사합니다。
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
다음으로 설정 파일을 엽니다。
sudo nano /etc/fail2ban/jail.local
다음 설정을 변경합니다。
[sshd]
enabled = true
port = 2200
maxretry = 3
findtime = 600
bantime = 3600

3.5.3 Fail2Ban 재시작

설정을 적용하기 위해 Fail2Ban을 재시작합니다。
sudo systemctl restart fail2ban

3.5.4 차단 리스트 확인

sudo fail2ban-client status sshd

요약

이 섹션에서는 SSH 보안을 강화하는 방법을 설명했습니다。
  • root 로그인 금지
  • 비밀번호 인증을 비활성화하고, 공개키 인증을 도입
  • 특정 사용자만 SSH 접근 허용
  • SSH 포트 변경
  • Fail2Ban을 도입하고, 불법 접근을 차단
이러한 대책을 취함으로써 보다 안전한 SSH 환경을 구축할 수 있습니다。

4. SSH 고급 설정

SSH 기본 설정 및 보안 강화가 완료되면, 다음으로 고급 설정을 수행하여 SSH를 보다 편리하고 안전하게 활용할 수 있도록 합니다. 이 섹션에서는 Ubuntu 22.10 이후의 ssh.socket 관리, SSH 터널(포트 포워딩), 다중 포트 수신 설정, 특정 IP 주소 허용 등 응용 SSH 설정에 대해 자세히 설명합니다.

4.1 Ubuntu 22.10 이후의 ssh.socket 활용

Ubuntu 22.10 이후에는 SSH 서비스 관리가 ssh.service에서 ssh.socket으로 변경될 수 있습니다. 이는 SSH가 요청을 받을 때 동적으로 시작되는 메커니즘으로, 자원 절약에 도움이 됩니다.

4.1.1 ssh.socket 상태 확인

먼저, ssh.socket이 활성화되어 있는지 확인합니다.
sudo systemctl status ssh.socket
출력 예시(활성화된 경우)
● ssh.socket - OpenSSH Server Socket
   Loaded: loaded (/lib/systemd/system/ssh.socket; enabled; vendor preset: enabled)
   Active: active (listening) since Fri 2025-02-28 12:00:00 UTC

4.1.2 ssh.socket 활성화 및 비활성화

만약 ssh.socket이 비활성화되어 있는 경우, 아래 명령으로 활성화할 수 있습니다。
sudo systemctl enable --now ssh.socket
반대로, 기존 ssh.service를 사용하려면, 아래와 같이 ssh.socket을 비활성화하고 ssh.service를 활성화합니다。
sudo systemctl disable --now ssh.socket
sudo systemctl enable --now ssh.service

4.2 SSH 터널(포트 포워딩)

SSH 터널을 이용하면 원격 서버와 로컬 PC 사이에 안전한 통신을 구축하고 외부 네트워크를 거치지 않고 데이터를 전송할 수 있습니다.

4.2.1 로컬 포트 포워딩

원격 서버의 데이터베이스나 웹 서버에 안전하게 접근할 때 유용합니다。 예: 원격 MySQL 서버(3306 포트)에 로컬 PC에서 연결
ssh -L 3306:localhost:3306 사용자명@서버의IP주소

4.2.2 리버스 포트 포워딩

외부 SSH 서버를 통해 내부 네트워크 서비스를 공개할 때 사용됩니다。 예: 로컬 웹 서버(80 포트)를 원격 서버의 8080 포트로 공개
ssh -R 8080:localhost:80 사용자명@서버의IP주소

4.2.3 다이내믹 포트 포워딩

SSH를 SOCKS 프록시로 이용해 익명으로 인터넷을 탐색할 수 있습니다。 예: 로컬 PC의 1080 포트에서 SOCK록시 생성
ssh -D 1080 사용자명@서버의IP주소

4.3 다중 포트 SSH 수신

보통 SSH는 하나의 포트(기본은 22)에서 동작하지만, 여러 포트에서 수신하도록 하면 다른 네트워크 환경에 대응할 수 있습니다。

4.3.1 설정 절차

  1. /etc/ssh/sshd_config 편집
sudo nano /etc/ssh/sshd_config
  1. 다음 행을 추가
Port 22
Port 2200
  1. SSH 재시작
sudo systemctl restart ssh
  1. UFW로 새로운 포트 허용
sudo ufw allow 2200/tcp

4.4 특정 IP 주소만 SSH 허용

SSH 접근을 제한하고 특정 IP 주소에서만 연결을 허용함으로써 보안을 강화할 수 있습니다。

4.4.1 /etc/hosts.allow 설정

특정 IP 주소에서의 SSH 접근만 허용하려면 다음 설정을 수행합니다。
sudo nano /etc/hosts.allow
다음 행을 추가합니다(192.168.1.100 부분은 허용할 IP 주소로 변경)。
sshd: 192.168.1.100

4.4.2 /etc/hosts.deny 설정

모든 IP 주소를 기본적으로 거부하려면 다음 설정을 추가합니다。
sudo nano /etc/hosts.deny
sshd: ALL
이렇게 하면 hosts.allow에 기재된 IP 주소 외의 SSH 연결은 거부됩니다。

요약

이 섹션에서는 SSH의 고급 설정을 설명했습니다。
  • Ubuntu 22.10 이후의 ssh.socket 관리
  • SSH 터널(포트 포워딩)을 활용한 안전한 통신
  • 다중 포트에서의 SSH 대기
  • 특정 IP 주소만 SSH를 허용하는 방법
이러한 설정을 적용함으로써 SSH의 보안과 편의성을 향상시킬 수 있습니다。

5. SSH 문제 해결

SSH를 설정해도 다양한 이유로 연결되지 않을 수 있습니다. 이 섹션에서는 SSH 연결 시 발생하기 쉬운 문제와 그 해결책을 문제별로 정리하여 설명합니다.

5.1 SSH에 연결할 수 없는 경우

SSH에 연결하려고 해도 Connection refused타임아웃 등의 오류가 발생하는 경우, 몇 가지 원인이 있을 수 있습니다.

5.1.1 SSH 서비스가 동작하지 않음

SSH 서버가 정상적으로 시작되지 않았을 가능성이 있습니다. 먼저, SSH 상태를 확인해 봅시다.
sudo systemctl status ssh
해결책:
  • Active: inactive (dead) 또는 failed인 경우에는 SSH를 재시작합니다.
sudo systemctl restart ssh
  • 재시작 후 자동 시작을 활성화하려면 다음 명령을 실행합니다.
sudo systemctl enable ssh

5.1.2 포트가 적절히 개방되지 않음

SSH 포트가 변경된 경우, 연결 시 올바른 포트를 지정해야 합니다.
ssh -p 2200 사용자명@서버 IP 주소
또한, 개방된 포트를 확인하려면 다음 명령을 사용합니다.
sudo netstat -tulnp | grep ssh
또는 ss 명령을 사용할 수도 있습니다.
ss -tulnp | grep ssh

5.1.3 방화벽 (UFW) 설정 확인

UFW가 SSH 통신을 차단하고 있지 않은지 확인합니다.
sudo ufw status
SSH가 허용되지 않은 경우의 해결책:
sudo ufw allow 22/tcp
포트를 변경한 경우에는 적절한 포트를 허용합니다.
sudo ufw allow 2200/tcp

5.2 인증 오류가 발생하는 경우

5.2.1 사용자명 또는 비밀번호가 틀림

SSH에 로그인할 때 올바른 사용자명을 사용하고 있는지 확인하십시오.
ssh 사용자명@서버 IP 주소

5.2.2 공개키 인증이 올바르게 설정되지 않음

공개키 인증을 사용하는 경우, 서버의 ~/.ssh/authorized_keys에 올바르게 공개키가 등록되어 있는지 확인하십시오。
cat ~/.ssh/authorized_keys
로컬의 공개키 (~/.ssh/id_rsa.pub)와 일치하는지 확인합니다。

5.2.3 .ssh 디렉터리 권한이 적절하지 않음

SSH 설정에서는 키 파일 및 .ssh 디렉터리 권한이 엄격하게 관리됩니다。
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
또한, /home/사용자명 디렉터리의 권한도 적절히 설정되어 있는지 확인합시다。
chmod 755 /home/사용자명

5.3 SSH 연결이 불안정하거나 바로 끊어지는 경우

SSH 연결이 불안정하고 일정 시간 후에 끊어지는 경우, 서버 측 또는 클라이언트 측의 타임아웃 설정이 원인일 가능성이 있습니다。

5.3.1 ClientAliveInterval 조정

SSH 설정 파일 /etc/ssh/sshd_config을 열고, 아래 매개변수를 추가하거나 변경합니다。
ClientAliveInterval 60
ClientAliveCountMax 3
설정 후, SSH를 재시작합니다。
sudo systemctl restart ssh

5.3.2 클라이언트 측 설정 변경

로컬 SSH 클라이언트가 일정 시간 후에 끊어지는 경우, 클라이언트 측 설정 파일 (~/.ssh/config)에 다음과 같은 설정을 추가하면 개선될 수 있습니다。
Host *
    ServerAliveInterval 60
    ServerAliveCountMax 3

5.4 SSH 로그 확인 방법

SSH 문제를 해결하려면 로그를 확인하는 것이 중요합니다。

5.4.1 SSH 로그 실시간 확인

SSH 로그를 실시간으로 확인하려면 다음 명령을 실행합니다。
sudo journalctl -u ssh -f

5.4.2 과거 데이터에서 SSH 로그 확인

과거 로그를 검색하려면 다음 명령을 사용합니다。
sudo cat /var/log/auth.log | grep ssh
또한, 특정 오류 메시지를 검색할 수도 있습니다。
sudo grep "Failed password" /var/log/auth.log

요약

이 섹션에서는 SSH 연결 문제와 그 해결책을 소개했습니다。
  • SSH 서비스가 동작하고 있는지 확인
  • 포트가 적절히 열려 있는지 확인
  • 방화벽 설정을 확인
  • 공개키 인증이 올바르게 설정되어 있는지 확인
  • 타임아웃 문제 해결
  • SSH 로그를 조사하여 문제를 파악
SSH 문제는 대부분 설정 오류나 네트워크 환경에 의한 영향으로 발생합니다。이 글의 트러블슈팅을 활용하여 신속하게 문제를 해결하십시오。

6. FAQ(자주 묻는 질문)

SSH 설정 및 사용에 관한 자주 묻는 질문과 해결책을 정리했습니다. SSH를 보다 편리하고 안전하게 사용하기 위한 팁을 소개합니다.

6.1 SSH 연결이 타임아웃될 경우 대처 방법은?

SSH 연결이 일정 시간 후에 끊어지는 경우, 아래 설정을 시도해 보세요.

6.1.1 서버 측 설정 변경

/etc/ssh/sshd_config 를 편집하고, 아래 매개변수를 설정합니다。
ClientAliveInterval 60
ClientAliveCountMax 3
설정 후, SSH를 재시작합니다。
sudo systemctl restart ssh

6.1.2 클라이언트 측 설정 변경

로컬 ~/.ssh/config에 아래 설정을 추가하면, 서버로부터의 연결 끊김을 방지할 수 있습니다。
Host *
    ServerAliveInterval 60
    ServerAliveCountMax 3

6.2 비밀번호를 잊어 SSH 연결이 안 될 경우 대처 방법은?

6.2.1 물리적으로 서버에 접근할 수 있는 경우

  1. 싱글 사용자 모드로 부팅 (GRUB 메뉴에서 recovery mode 선택)
  2. 아래 명령으로 비밀번호를 재설정
passwd 사용자명
  1. 시스템을 재부팅

6.2.2 물리적 접근이 불가능한 경우(클라우드 VPS 등)

  • VPS 콘솔 기능을 이용해 원격 연결
  • SSH 공개키 인증을 이용

6.3 Windows에서 SSH를 사용하는 방법은?

6.3.1 PowerShell 사용

Windows 10 이상에서는 PowerShell에 SSH 클라이언트가 기본 탑재되어 있습니다. 아래 명령으로 연결할 수 있습니다。
ssh 사용자명@서버의IP주소

6.3.2 PuTTY 사용

  1. PuTTY 를 다운로드·설치
  2. Host Name (or IP address)에 서버의 IP 주소를 입력
  3. Connection typeSSH로 설정하고, Open을 클릭
  4. 사용자명과 비밀번호를 입력해 연결

6.4 Ubuntu WSL(Windows Subsystem for Linux)에서 SSH를 설정하려면?

WSL 환경에서 SSH 서버를 설치하려면, 아래 절차를 실행합니다。

6.4.1 SSH 서버 설치

sudo apt update && sudo apt install openssh-server

6.4.2 SSH 설정 변경

/etc/ssh/sshd_config를 편집하고, 아래 설정을 활성화합니다。
PasswordAuthentication yes
WSL은 기본적으로 systemd를 사용하지 않으므로, 다음 명령으로 SSH를 수동으로 시작합니다。
sudo service ssh start

6.5 SSH 설정 후에 해야 할 추가 보안 대책은?

6.5.1 Fail2Ban 도입

SSH에 대한 무단 접근을 방지하기 위해 Fail2Ban을 설치합니다。
sudo apt install fail2ban -y
설정 파일 /etc/fail2ban/jail.local를 편집하고, SSH 보호를 활성화합니다。
[sshd]
enabled = true
port = 22
maxretry = 3
findtime = 600
bantime = 3600
Fail2Ban을 재시작하여 설정을 적용합니다。
sudo systemctl restart fail2ban

6.5.2 SSH 포트 변경

/etc/ssh/sshd_config를 열고, 기본 22를 변경합니다。
Port 2200
설정 후, SSH를 재시작하고, UFW로 새로운 포트를 허용합니다。
sudo ufw allow 2200/tcp

6.6 Ubuntu에서 SSH 로그를 실시간으로 확인하려면?

SSH 로그를 실시간으로 모니터링하려면, 다음 명령을 실행합니다。
sudo journalctl -u ssh -f
과거 SSH 로그를 확인하려면, 다음 명령을 사용합니다。
sudo cat /var/log/auth.log | grep ssh

6.7 SSH를 더 편리하게 사용하려면?

6.7.1 .ssh/config 로 간편 로그인

SSH 연결을 자주 하는 경우, 설정을 ~/.ssh/config에 저장하면 간편하게 로그인할 수 있습니다。
Host myserver
    HostName 192.168.1.100
    User user
    Port 2200
    IdentityFile ~/.ssh/id_rsa
이 설정 후, 아래 명령만으로 SSH 연결이 가능합니다。
ssh myserver

6.7.2 ssh-agent 사용

비밀키의 패스프레이즈 입력을 생략하기 위해 ssh-agent를 사용합니다。
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa

요약

이 섹션에서는 SSH에 대한 자주 묻는 질문과 그 해결책을 소개했습니다.
  • SSH 타임아웃 대책
  • 비밀번호를 잊어버렸을 때 복구 방법
  • Windows 및 WSL에서 SSH 사용
  • 추가 보안 대책
  • SSH 로그 확인 방법
  • 보다 편리하게 사용하기 위한 .ssh/config 활용
이 글의 내용을 활용하면, 안전하고 편안한 SSH 환경을 구축하고, 원격 서버 관리를 원활하게 수행할 수 있습니다.

관련 기사

관련

1. 소개 Ubuntu에서 SSH를 이용하면 원격에서 서버나 PC에 안전하게 접근하고 조작할 수 있게 됩니다. 이 기사에서는 SSH의 개요부터 Ubuntu에 SSH 서버를 설치하는 방법, 보안 대책, 트러블슈팅까지[…]

年収訴求