개요
클라이언트에서 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 |