SSH 비밀번호 입력 과정을 생략한 서버 접속

이 문서에서 핵심이 되는 단어는 “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, “OPTIONAL” 입니다. 이것은 RFC 2119 에서 정의한 뜻과 내용을 기준으로 합니다.
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119.

Secure Shell, SSH

SSH는 Secure Shell의 약자로 비보안 네트워크를 통해 다른 컴퓨터에 안전하게 접속하고 원격에서 명령을 실행하거나 파일을 전송할 수 있습니다. 데이터를 전송하는 경우 이를 암호화하여 안전하게 보호합니다.

SSH는 클라이언트-서버 모델을 따릅니다. 클라이언트는 접속하고자 하는 사용자의 컴퓨터이며, 서버는 접속 대상이 되는 원격 컴퓨터입니다. 클라이언트와 서버 간의 통신은 암호화된 채널을 통해 잠재적인 도청이나 데이터 변조를 방지합니다.

SSH의 원리

SSH는 주로 공개 키 암호화를 사용하여 클라이언트와 서버 간의 안전한 연결을 설정합니다. SSH 접속 시 사용하는 두 가지 주요 인증 방식이 있습니다.

  • 비밀번호 기반 인증: 사용자가 서버에 접속할 때마다 비밀번호를 입력합니다.
  • 키 기반 인증: 사용자의 SSH 키 페어를 사용하여 인증합니다.

SSH 키 기반 인증으로 비밀번호를 입력하는 과정을 생략하고 서버에 접속할 것입니다.

SSH 키 기반 인

  1. SSH 키 생성
    클라이언트에서 공개 키와 비밀 키로 구성된 SSH 키 페어를 생성합니다.
  2. 공개 키 배포
    생성한 공개 키를 서버에 복사하여 저장합니다. 일반적으로 서버의 키 목록은 ~/.ssh/authorized_keys 파일에 추가됩니다.
  3. 접속 시도
    클라이언트가 서버에 접속을 시도하는 경우 키 목록에서 공개 키를 확인합니다.
  4. 암호화된 인증 과정
    서버가 무작위 문자열을 암호화하여 전송하면 클라이언트는 자신의 비밀 키로 문자열을 복호화한 값을 서버에 보냅니다.
  5. 인증 완료
    서버가 클라이언트의 응답을 확인하고, 올바른 경우 접속을 허용합니다.

SSH 패스워드 없이 접속하기

SSH 키 기반 인증을 사용하면 비밀번호를 입력하는 과정을 생략하고 안전하게 서버에 접속할 수 있습니다.

SSH 키 생성

반드시(MUST) 클라이언트에서 SSH 키 페어를 생성합니다.

ssh-keygen -t rsa -b 4096

명령어를 실행하면 키를 저장할 경로와 파일 이름을 묻는 메시지가 나타납니다. SSH 클라이언트는 기본 설정으로 홈 폴더에 있는 id_rsa 파일을 찾기 때문에 /home/<사용자 ID>/.ssh/id_rsa 를 사용하는 것을 권장합니다(SHOULD).

다음은 Passphrase를 입력하라는 메시지가 표시됩니다. Passphrase를 입력하지 않으면 비밀번호 없이 바로 SSH 접속이 가능합니다.

공개 키를 서버로 복사

생성된 SSH 키 쌍 중 반드시(MUST) 공개 키를 서버에 복사해야 합니다. 아래 방법 중 하나를 선택합니다. 서버의 사용자명을 foo로 가정합니다.

SSH-COPY-ID를 이용하여 공개 키 복사

ssh-copy-id foo@server_ip

서버 접속을 위한 비밀번호를 입력하면 공개 키가 서버의 ~/.ssh/authorized_keys 파일에 추가됩니다.

SCP를 이용하여 공개 키 복사

scp를 이용하여 공개 키를 복사하는 과정은 ssh-copy-id를 사용할 수 없는 경우의 대안으로 유용합니다. 서버에 직접 접속하여 반드시(MUST) 복사된 파일을 키 목록에 추가해 주어야 합니다.

scp .ssh/id_rsa.pub foo@server_ip:~
ssh foo@server_ip # 비밀번호를 이용하여 접속

mkdir -p .ssh                       
# 기존 authorized_keys 파일에 id_rsa.pub 내용 추가
cat id_rsa.pub >> .ssh/authorized_keys
rm id_rsa.pub

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다