서버 | SSH 키 생성하기

|

키 생성

키를 생성할 계정으로 로그인합니다.

ssh-keygen -t rsa

RSA(비대칭키 암호) 방식 으로 키 파일을 생성합니다.

다른 암호화 방식도 지원

SSH는 RSA, DSA, ECDSA, ED25519 등의 알고리즘을 지원합니다.
키 생성 알고리즘은 -t(type) 옵션을 사용하며, 키의 크기(bit) 를 지정할 수 있습니다.

ssh-keygen -t rsa -b 4096
ssh-keygen -t dsa
ssh-keygen -t ecdsa -b 521
ssh-keygen -t ed25519

키 생성은 아래 순서로 진행됩니다.
변경점이 없다면 엔터키를 눌러 모두 스킵하여 진행하면 됩니다.

  1. 키 저장 경로 (기본값 : $HOME/.ssh/id_rsa)
  2. 추가 사용할 암호 (passphrase)
  3. 추가 사용할 암호 확인 (passphrase)

image 142
서버 | SSH 키 생성하기 3

성공하면 위와 같은 화면을 볼 수 있습니다.

계정홈디렉토리/.ssh 에 아래의 자료가 자동으로 생성되어있습니다.

  • id_rsa (private key) : 비밀키, 타인에게 노출되면 안됩니다.
  • id_rsa.pub (public key) : 공개키, 접속하려는 서버에서 사용합니다.

기타 자료

  • authorized_keys : 리모트 서버에 인증용 키 자료를 보관
  • known_hosts : 리모트 서버에 접속하게되면 클라이언트 서버에 해당 정보가 등록됩니다.

위의 자료가 없다고 해서 당황하지 마세요.
authorized_keys 는 직접 만들어서 관리해야 하고, known_hosts는 자동 생성됩니다.

SSH 키 등록

image 151
서버 | SSH 키 생성하기 4

A 서버(로컬 서버)에 접근하기 위해
B 서버(리모트 서버)에 키를 등록합니다.

서버 인증 파일 저장

  • B 서버 계정에 로그인합니다.
  • 계정의 홈 디렉토리에 .ssh 폴더를 만듭니다.
    mkdir ~/.ssh
  • 파일을 생성합니다
    touch ~/.ssh/authorized_keys
  • 읽기 쓰기 권한을 설정합니다
    chmod 644 ~/.ssh/authorized_keys
  • A 서버의 키를 B 서버(유저 홈 디렉토리)에 붙여넣기합니다.
    • A 서버에 있는 ~.ssh/id_rsa.pub 파일 내용을 복사합니다
    • B 서버의 ~/.ssh/authorized_keys 파일에 붙여넣기합니다

SSH 접속정보 저장

A 서버에 접근하기 위해
B 서버에 접속정보를 저장해둡니다

기존에 SSH 접속할 때 [email protected] 으로 접근했다면
이제는 SSH 접속할 때 ssh myserver 로 간단하게 접근할 수 있습니다.

nano ~/.ssh/config

로그인한 유저의 홈 디렉토리에서 .ssh/config 파일을 생성합니다.

Host myserver
    HostName 123.123.123
    port 22
    User ubuntu
Host myserver2
    HostName 234.123.123
    port 22
    User ubuntu    

위의 자료를 입력한 후 저장합니다.

ssh myserver

앞으로는 단축된 이름으로 쉽게 접근할 수 있습니다.

용어정리

  • ~/ : 계정의 홈 디렉토리
  • touch : 파일 생성, 날짜 수정
  • $HOME : 계정 홈 디렉토리 경로
  • 호스트 : 로컬호스트와 원격 호스트로 나뉘어 있습니다.

참조

답글 남기기

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

클릭하여 복사