일단 진행시켜

Linux: SSH 및 Key-Based 인증 본문

🗞️ 보안 동향 파악 및 나의 생각 정리

Linux: SSH 및 Key-Based 인증

2024. 9. 2. 10:47

1.Linux: SSH and Key-Based Authentication

https://thenewstack.io/linux-ssh-and-key-based-authentication/

 

Linux: SSH and Key-Based Authentication

Learning to leverage SSH is an essential Linux sysadmin skill. This article covers basic SSH configurations, password-based authentication, and general security settings.

thenewstack.io

 

Feature image by Stefan Schweihofer from Pixabay.

 

[ 요약 ]

Linux: pw를 통한 SSH 연결 설정

1. 인증하려는 특정 호스트 네임이나 IP 주소를 타겟팅

  원격 사용자 계정을 지정

$ ssh [host name]@<IP address>

 

이를 통해, Linux 명령 실행 및 설치된 모든 프로그램( Vim, Apache, MariaDB 등)을 실행할 수 있다.

연결 해제: exit or logout

 

위와 같이 pw로 SSH 연결하면 관리자가 한 번에 하나의 시스템에 연결하여 스크립트를 실행하는 수동 원격 관리만 허용.

또 비밀번호 관리가 필요하다. 특히 여러 원격 장치를 다룰 때 번거로움이 발생한다. 

 

 

키 기반 인증을 사용하면 원격 관리에 대한 인증을 간소화하고, 특히 자동화 기능에 효과적이다.

자동화 도구가 관리자 비밀번호 입력을 대신 처리하여, 따로 파일에 저장하지 않아도 원격 시스템 인증이 가능하다.

 

 

키 기반 인증

비대칭 키 암호화 알고리즘(암·복호화에 서로 다른 키를 사용하는 알고리즘) 사용

공개 키: 네트워크를 통해 원격 시스템으로 전송. 공개 키로 암호화된 모든 데이터는 관련 개인 키로만 해독 가능하다

개인 키: 로컬 장치에 저장(네트워크 x). 개인 키로 암호화된 모든 데이터는 공개 키로만 해독 가능하다

 

비대칭 키는 표준 비밀번호보다 추측, 무차별 대입 공격이 훨씬 어렵기 때문에 예측 가능한 단어/구문을 기반으로 하는 비밀번호보다 훨씬 안전하고 신뢰할 수 있다.

 

 

Linux: key 기반 SSH 인증 구성

방법은 키 쌍을 생성하여 공개 키는 원격 장치에 복사, 연결을 테스트하면 된다.

 

1. 키 쌍 생성

$ ssh-keygen

 

위 명령어를 입력하면 현재 사용자의 홈 디렉터리에 2개의 숨김 파일이 생성된다.

~/. ssh / id_rsa                          // private key
~/.ssh / id_rsa.pub                   // public key

 

 

2. 공개 키를 원격 SSH 장치로 복사

$ ssh-copy-id

 

이 단계에서는 패스워드가 필요하다(처음이자 마지막..)

공개 키 파일은 원격 호스트의 ~/. ssh/authorized_users에 있다.

 

 

3. 연결 테스트

$ ssh [host name]@<IP address>

 

 

 

Key-Based 인증은 단순성 부분에서 강점을 보인다.

더 빠르고 안전하고 간편하게 로그인할 수 있게 된다.

 

관리자가 수동으로 비밀번호를 입력할 때까지 작업은 일시 중지된다(이 방법을 자동화 처리할 수 있다)

수동 SSH 연결은 비밀번호 파일이 내장되어 있어 노출될 위험이 있다.

완전한 제로터치를 위한 Key-Based 인증은 초기 비밀번호 입력까지 대신 수행해 준다.

 

로컬 시스템에서 키 쌍을 생성하고 공개 키를 원격에 복사한다.(여기까진 위 방법과 동일)

다중 서버 연결을 처리할 때 사용자별 로컬 SSH 구성 파일을 편집하면 된다.

 

 

 

 

SSH(Secure Shell)?

  • 보안되지 않은 네트워크를 통해 원격 컴퓨터에 안전하게 액세스 하고 관리하기 위해 사용하는 프로토콜
  • 로컬과 원격 간에 보안 채널을 제공 → 사용자가 로그인, 명령 실행, 파일 전송, 시스템 관리 등을 수행할 수 있도록 함
  • Linux 시스템과 네트워크 장치를 위한 중요한 원격 관리 도구

주요 기능

1. 다양한 플랫폼에 원격 접속(로그인) 가능

2. 원격 명령 실행

3. 대부분 Linux 배포판에는 기본으로 설치됨

4. 강력한 인증 메커니즘

5. SCP, SFTP와 같은 안전한 파일 전송 지원

6. 다른 비보안 애플리케이션에 대한 터널링 제공

7. 자동화, 스크립팅 강화

 

 

 


 

🤔 이에 대한 나의 생각

그동안 나는 자동화로 인해 보안성이 약화될 거라고 생각했다. 관리자가 직접 확인하지 않다는 점이 그 이유였다.

하지만 오늘 기사를 통해 키 기반 인증은 비밀번호 입력을 요구하지 않으면서도, 비대칭 암호화를 통해 안전하게 인증을 처리할 수 있기 때문에 오히려 보안성을 강화할 수 있다는 점을 깨달았다.

 

자동화된 작업으로 인해 직접 비밀번호 입력 및 파일에 저장하는 대신, 개인 키-공개 키 쌍을 사용하여 인증을 처리한다.

개인 키는 로컬에 저장되며, 이를 통해 원격 시스템에 안전하게 접근할 수 있다.

따라서 비밀번호 기반 인증보다 훨씬 더 안전하다.