OS

공개키 등록을 통해 SSH 접속 시 패스워드 입력 생략

ryanhearts 2023. 7. 21.

개요

클라이언트에서 ssh를 통해 서버에 접속해 서버 리소스를 활용해 작업하는 방식은 아주 흔한 업무환경 중 하나입니다.

저 역시도 이러한 방식을 사용하는데 매일 아침마다 그리고 업무중 수차례 서버에 접속할 때 마다 패스워드를 입력하는 일은 생각보다 번거롭습니다.

이럴 때 공개키를 생성해 서버에 등록함으로써 접속 시 패스워드 입력을 생략할 수 있습니다.

이 과정은 아주 간단한 몇 가지 커맨드 입력으로 쉽게 진행할 수 있습니다.


목차

1. 클라이언트 - 공개키 생성

2. 클라이언트 - 공개키 전송 (to 서버)

3. 클라이언트 - 로그인


1. 클라이언트 - 공개키 생성

클라이언트 (접속할 pc) 에서 ssh-keygen 명령어로 공개키를 생성합니다.

$ ssh-keygen -t rsa

1, 2번 항목에서 각각 공개키 저장 위치 / 공개키 패스워드를 입력받는데 두개 다 생략하고 진행하면 됩니다.

 

+ 상세 설명

1번 ~ 개인키 파일 "id_rsa" 의 저장 위치를 디폴트로 설정된 .ssh 디렉토리에서 다른 디렉토리로 변경하면 추후 공개키 전송 등 과정에서 별도 지정한 디렉토리를 계속 입력해주어야 합니다.

2번 ~ ssh 접속 시 귀찮은 패스워드 입력 과정 생략을 위해 공개키를 만드는 것인데 그 공개키에 또 패스워드를 생성한다면 기존 패스워드를 다른 패스워드로 대체하는 꼴이 됩니다.


2. 클라이언트 - 공개키 전송 (to 서버)

ssh-copy-id 명령어로 클라이언트의 공개키를 서버의 authorized_keys 에 등록합니다.

$ ssh-copy-id {USER}@{RemoteHost}

$ ssh-copy-id ryan@192.168.0.21

중간에

공개키 전송을 위해  {user_name}/.ssh/id_rsa.pub 를 탐색합니다. 위에서 공개키 생성 시 별도의 디렉토리를 지정했다면 그 위치를 -i 옵션을 통해 직접 지정해주어야합니다.

$ ssh-copy-id -i dir_1/dir_2/.../id_rsa .pub {USER}@{RemoteHost}


3. 클라이언트 - 로그인

별 다른 문제가 없다면 일반적인 방법으로 로그인하시면 됩니다.

$ ssh  {USER}@{RemoteHost}

$ ssh  ryan@192.168.0.21

 

ssh 커맨드가 클라이언트의 개인키를 자동으로 찾아 전송하게 됩니다.

그렇게 되면 서버에 등록해둔 클라이언트의 공개키와 매칭되어 패스워드 입력 없이 접속할 수 있습니다.

'OS' 카테고리의 다른 글

MacOS C++ & CV2 환경 세팅  (0) 2023.07.04
Linux resource monitoring  (1) 2023.04.20