가이드

리눅스 SSH 키 삭제: 모든 방법과 팁

  • 8 읽는 데 몇 분 소요
  • Hostragons 팀
리눅스 SSH 키 삭제: 모든 방법과 팁

소개

리눅스 SSH 키 삭제는 특히 SSH 키를 삭제하거나 교체하려고 할 때 필요한 중요한 단계입니다. SSH 연결의 보안을 강화하거나 새로운 SSH 보안 구성으로 전환하기 위해 키를 폐기할 수 있습니다. 이번 글에서는 SSH 키 삭제 과정이 어떤 방법으로 수행될 수 있는지, 어떤 장점과 단점이 있는지, 그리고 가능한 대안 솔루션을 다루겠습니다. 또한, 예제 작업을 통해 이러한 과정을 보강하고, 마지막 부분에서는 자주 묻는 질문에 대한 답변을 제공하겠습니다.

1. SSH 키란 무엇이며 왜 삭제해야 하는가?

SSH (Secure Shell)는 원격 서버에 안전하게 연결할 수 있도록 해주는 프로토콜 및 도구 세트입니다. “키 기반 인증” 방식은 안전하고 실용적인 사용을 제공합니다. 리눅스 SSH 키 삭제가 필요한 경우는 다음과 같은 상황입니다:

  • 보안: 키가 유출되었거나 구식 알고리즘으로 생성되었다면 우려되는 경우.
  • 사용자 변경: 서버를 인계받거나 팀에 새로운 구성원이 추가되거나 프로젝트에서 떠나는 전문가의 접근을 취소해야 하는 경우.
  • 새로운 구성: 더 강력한 알고리즘(예: Ed25519)이나 다른 SSH 보안 구성을 위해 키를 재발급하는 경우.

SSH 키 삭제 작업은 위험한 상황뿐만 아니라 정기적인 보안 정책의 일환으로 수행될 수 있습니다. 사용되지 않거나 불필요해진 키를 삭제하면 가능한 사이버 공격 벡터를 줄일 수 있습니다.

2. SSH 키 삭제를 위한 기본 단계

SSH 키를 삭제하거나 폐기하려면 일반적으로 두 가지 지점에 주목해야 합니다:

  1. 로컬 머신의 키 삭제: 주로 ~/.ssh/ 디렉토리에 있는 개인(private) 및 공개(public) 키를 제거합니다.
  2. 원격 서버의 저장된 키 삭제: 서버 측에서 ~/.ssh/authorized_keys 파일에 있는 행을 정리합니다.

이 두 작업은 동시에 수행되어야 합니다. 로컬 키를 삭제하더라도 서버에 정보가 남아 있다면, 공격자가 서버 측 정보로 접근할 수 있는 위험이 남아 있습니다.

2.1 로컬 키 삭제

리눅스 또는 macOS 시스템에서 SSH 키 쌍은 일반적으로 ~/.ssh 폴더에 위치합니다. 예시:

  • ~/.ssh/id_rsa (개인 키)
  • ~/.ssh/id_rsa.pub (공개 키)
  • ~/.ssh/id_ed25519 (개인 키)
  • ~/.ssh/id_ed25519.pub (공개 키)

삭제할 때는 주의가 필요합니다. 만약 이름이 특수하게 지정되었다면 (mycustomkey 등), 올바른 파일을 식별해야 합니다. 명령어의 예는 다음과 같습니다:

cd ~/.ssh/
rm id_rsa id_rsa.pub
# 또는
rm id_ed25519 id_ed25519.pub

새 프로젝트를 위해 또는 다른 사용자와 작업하기 위해 이 파일들을 삭제하면 충분합니다. 그러나 단일 서버에서 여러 키를 사용하고 있다면 잘못된 파일을 삭제하지 않도록 주의해야 합니다.

리눅스 ssh 키 삭제 예시 화면

2.2 원격 서버의 키 삭제

서버에서 리눅스 SSH 키 삭제 단계로 이동할 때, 원격 머신에서 연결된 사용자의 ~/.ssh/authorized_keys 파일에 기록된 행을 삭제해야 합니다. 다음과 같은 방법으로 진행할 수 있습니다:

# 서버에 로그인합니다.
ssh [이메일 주소]

# 이후 자신의 홈 디렉토리로 가서 authorized_keys 파일을 엽니다.
nano ~/.ssh/authorized_keys

# 삭제하려는 행을 찾아 제거합니다.

예를 들어, id_rsa.pub 내용은 긴 행으로 authorized_keys에 나타납니다. 이 행이나 행들을 확인하고 완전히 삭제하십시오. 저장하고 나가면 해당 키의 서버 접근 권한이 취소됩니다.

2.3 특별한 방법: ssh-copy-id 반전

ssh-copy-id는 일반적으로 키 추가에 사용됩니다. 하지만 “삭제” 옵션은 기본적으로 제공되지 않습니다. 그러나 ssh-copy-id로 추가된 키는 authorized_keys 파일의 특정 행과 일치하기 때문에, 이 행들을 수동으로 삭제해야 합니다. 즉, 직접 ssh-copy-id -r와 같은 명령어로 삭제 작업이 지원되지 않습니다. 따라서 편집기나 스크립트를 사용하여 authorized_keys를 정리해야 합니다.

3. 리눅스 SSH 키 삭제의 장점과 단점

작업을 수행하기 전에 장단점을 따져보는 것은 가능한 문제를 방지하는 데 도움이 됩니다. SSH 키 삭제 과정의 장점과 단점은 다음과 같습니다:

3.1 장점

  • 보안 강화: 사용하지 않거나 탈취의 위험이 있는 구식 키를 폐기하여 공격 표면을 줄일 수 있습니다.
  • 관리 용이성: 팀 내에서 퇴사한 사람의 접근을 쉽게 종료할 수 있습니다. 이는 관리의 용이성을 높입니다.
  • 정기적인 업데이트: 정기적인 삭제와 재발급으로 지속적으로 최신 암호화 알고리즘을 사용할 수 있습니다.

3.2 단점

  • 잘못된 키 삭제: 잘못된 파일이나 행을 삭제하면 시스템 접근 권한을 잃을 수 있습니다.
  • 일시적인 접근 손실: 작업 도중 경험이 부족한 사용자들은 다시 연결하는 데 어려움을 겪을 수 있습니다.
  • 인력 비용: 많은 서버나 사용자에 대해 이 작업을 관리하는 데 시간이 걸릴 수 있습니다.

따라서 장점 외에도 예상치 못한 위험을 염두에 두고, 작업을 계획적으로 조심스럽게 수행해야 합니다.

4. 대안 또는 추가 방법

SSH 키를 삭제하는 것 외에도 다양한 접근 방식이 존재합니다. 이 섹션을 검토하는 것은 특정 시나리오에서 이점을 제공할 수 있습니다:

4.1 패스프레이즈 업데이트

단순히 SSH 보안 구성의 일환으로 키 비밀번호를 변경하려는 경우, ssh-keygen -p 명령어를 사용하여 패스프레이즈를 갱신할 수 있습니다. 이를 통해 키를 완전히 삭제할 필요 없이 보안 수준을 높일 수 있습니다.

4.2 키 폐기 목록(KRL)

OpenSSH 6.2 이상 버전에서 키 폐기 목록 (KRL) 기능이 있습니다. 즉, 서버에서 어떤 키가 무효인지, 어떤 인증서가 수용되지 않을지를 기록할 수 있습니다. ssh-keygen -k -f revoked_keys와 같은 명령어로 KRL을 생성하고, SSH를 이 기준에 맞게 구성할 수 있습니다.

4.3 SSH 구성 파일로 차단

서버 측에서는 /etc/ssh/sshd_config에서 특정 매개변수를 사용하여 사용자나 특정 키 유형을 차단할 수 있습니다. 예를 들어 PasswordAuthentication no와 같은 설정으로 키 기반 접근만 허용하고, 필요에 따라 DMZ 또는 테스트 시스템을 위한 다른 정책을 생성할 수 있습니다. 하지만 이는 “키를 삭제”하는 것보다 전체 접근 프로토콜을 변경하는 접근 방법입니다.

5. 구체적인 사례와 팁

작업을 어떻게 진행할지에 대한 몇 가지 예시를 살펴보겠습니다:

  1. 개발 팀 예시: 5명의 팀이 있습니다. 퇴사한 사람의 authorized_keys 파일에서 그의 행만 삭제하면 충분할 수 있습니다. 또한, 그 사람의 로컬 머신에 있는 개인 키도 삭제해야 합니다.
  2. 서버 인계: 인프라가 변경될 때, 이전 서버의 모든 SSH 키를 폐기하고 새 서버에서는 최신 키만 사용합니다. 이를 통해 사용되지 않는 시스템의 취약점이 다시 활성화되는 것을 방지할 수 있습니다.
  3. 긴급 상황 시나리오: 키가 유출되었거나 탈취된 의심이 있는 경우, 신속하게 리눅스 SSH 키 삭제를 실시하여 무단 접근을 방지할 수 있습니다. 이후 새로운 키를 생성하여 시스템에 연결할 수 있습니다.

이러한 예시들은 다양한 규모와 상황에서 키 삭제 결정이 얼마나 중요한지를 보여줍니다.

6. 외부 및 내부 링크

SSH관련 더 포괄적인 정보가 필요하다면 OpenSSH 공식 사이트에서 모든 문서에 접근할 수 있습니다.

또한, 저희 사이트의 리눅스 카테고리에서 다양한 구성 예시도 참고할 수 있습니다.

7. 요약 및 결론

리눅스 SSH 키 삭제는 보안과 관리의 측면에서 필수적인 단계 중 하나입니다. 보안 위반, 팀 변화, 또는 단순히 정리를 위한 이유로 SSH 키를 삭제할 수 있습니다. 이 과정은 기본적으로 두 단계로 나뉩니다: 로컬 키를 정리하고, 서버 측의 authorized_keys 파일에서 관련 행을 삭제하는 것입니다.

이 단계에서 주의해 주시고, SSH 보안 구성 프로세스를 문서화하여 관리하며 팀 내 조정을 유지하는 것이 권장됩니다. 최신 암호화 방법을 사용하고, 주기적으로 점검하며, 사용하지 않는 키를 비활성화하는 것은 사이버 공격에 대한 중요한 방어막을 형성합니다. 작은 실수도 큰 데이터 위반으로 이어질 수 있음을 잊지 마십시오.

자주 묻는 질문 (SSS)

1. 리눅스 SSH 키 삭제 작업을 위해 시스템에서 로그인 상태여야 하나요?

일반적으로 그렇습니다. SSH 키를 삭제하기 위해 서버에 접근할 수 있어야 합니다. 로그인 상태이면 authorized_keys 파일을 수정하고, 로컬에서 ~/.ssh 폴더의 파일을 삭제할 수 있습니다. 그러나 다른 방법(예: 루트 콘솔)을 통해 접근한다면 로그인하지 않고도 수정을 할 수 있습니다.

2. SSH 키 삭제 후 다시 연결하기 위해 어떻게 해야 하나요?

이전 키를 삭제하면 해당 키로 더 이상 연결할 수 없습니다. 새로운 SSH 보안 구성을 계획하고 있다면 ssh-keygen 명령으로 새로운 키를 생성하고, 서버의 authorized_keys 파일에 공개 키를 추가해야 합니다.

3. 여러 서버에서 같은 키를 사용하고 있다면 전부 삭제해야 하나요?

만약 키를 완전히 비활성화하려면 예, 모든 서버의 authorized_keys 기록도 삭제해야 합니다. 그렇지 않으면 다른 서버에서 여전히 접근이 가능할 수 있습니다.

이 기사를 공유하세요:

Hostragons 팀

호스팅, 서버, 도메인 이름에 대한 최신 가이드를 전문가 팀과 함께 확인하세요. 프로젝트에 맞는 최적의 솔루션을 찾아드리겠습니다.

문의하기