본문 바로가기

Linux

[Linux] 로컬에서 SSH 키로 리눅스 서버 접속

유지보수하고 있는 프로젝트가 많이 때문에 서버에 접속할 일이 많이 있습니다.

SSH 키로 서버에 접속하는 방법을 정리했습니다.

Windows 환경을 기준으로 작성했습니다.

1. SSH 키 생성

먼저, SSH 키를 생성해야 합니다. ssh-keygen을 사용하여 SSH 키를 생성할 수 있습니다.

1. Windows 터미널 열기

2. SSH 키 생성

 

다음 명령어를 입력하여 SSH 키를 생성합니다.

옵션을 사용해 다양한 설정을 할 수 있습니다.

ssh-keygen -t ed25519 -C "email@example.com"
ed25519 공개 키 암호화 알고리즘
타원곡선 암호 알고리즘을 사용하는 공개키 암호화 방식은 기존의 RSA와 비교해서 상대적으로 작은 키 길이를 사용할 수 있으면서 동일한 안정성을 보여주므로 권장되는 공개키 암호화 방식이라고 할 수 있습니다.

2. SSH 키를 리눅스 서버에 복사

생성된 공개 키를 리눅스 서버에 복사해야 합니다. Windows에서는 ssh-copy-id 기본적으로 설치되어 있지 않아서 다른 방법으로 사용합니다.

1. 공개키 확인

기본 경로에 생성된 키는 ~/.ssh/id_ed25519.pub입니다. 이 파일을 메모장 등으로 열어 내용을 복사합니다.

2. 리눅스 서버에 접속

접속하려고 하는 리눅스 서버에 접속합니다.

3. SSH 디렉토리 생성

리눅스 서버에서 .ssh 디렉토리를 생성하고, 접근 권한을 설정합니다.

저는 리눅스 서버에서도 SSH 키를 생성해 .ssh 디렉토리도 생성 및 권한 설정을 자동으로 진행했습니다.

ssh-keygen -t ed25519

4. 공개 키 추가

.ssh 디렉토리로 이동해 authorized_keys 파일을 생성하고 id_ed25519.pub 를 복사합니다.

touch authorized_keys
chmod 600 ~/.ssh/authorized_keys

3. SSH 키를 사용하여 리눅스 서버 접속

1. Windows 터미널에서 SSH 접속

이제 SSH 키를 사용하여 리눅스 서버에 접속할 수 있습니다.

ssh -i ~/.ssh/id_ed25519 {리눅스 서버 사용자}@{리눅스 서버 IP}

 

-i 옵션을 사용하여 생성한 비밀 키 파일의 경로를 지정해줍니다.

4. SSH 설정 파일 사용

여러 서버에 접속해야 한다면, ~/.ssh/config 파일을 설정하여 더 간편하게 접속할 수 있습니다.

Host Linux_Server
  HostName {리눅스 서버 IP}
  IdentityFile {생성한 비밀 키 경로}
  User {리눅스 서버 사용자}

 

이제 ssh server 명령어로 접속할 수 있습니다.

마무리

설정 파일을 사용해 정리해 두면, 접속도 간편하게 할 수 있고 서버 정보를 문서로 정리할 수 있어서 장점이 있는 것 같습니다.