SSH Key 사용 (비밀번호 없이 서버 접속하기)
SSH Key란?
서버에 접속할 때 비밀번호 대신 Key를 제출하는 방식입니다.
SSH Key를 사용하는 이유?
- 비밀번호 없이 자동으로 서버에 접속하고 싶을 때
- 비밀번호 보다 높은 수준의 보안을 필요로 할 때
SSH Key 동작 방식
SSH key는 공개 키(Public Key)와 비공개 키(Private Key)로 이루어져 있습니다.
SSH Key의 동작 방식은 비공개 키(id_rsa)는 로컬 컴퓨터 (Mac)에 있어야 하고, 공개 키(id_rsa.pub)는 원격 서버(Linux)에 authorized_keys에 있어야 합니다.
클라이언트 (Mac OS)
SSH Key 생성 (Unix 기준)
Mac ssh-keygen이라는 명령어를 이용하여 생성할 수 있습니다.
터미널을 실행하여 아래와 같이 입력합니다. -t rsa는 암호화 방식으로 키를 생성한다는 의미입니다.
ssh-keygen -t rsa
Enter file in which to save the key (/Users/leby.y.kim/.ssh/id_rsa): (엔터)
Created directory '/Users/leby.y.kim/.ssh'.
Enter passphrase (empty for no passphrase):(엔터)
Enter same passphrase again:(엔터)
첫번째는 SSH Key 생성 디렉터리를 물어서 엔터를 누르면 해당 위치에 생성됩니다.
두번째는 암호를 설정하는 부분인이고 아무것도 입력하지 않고 엔터를 누르면 비밀번호 없이 생성하겠다는 의미입니다.
SSH Key 생성 확인
ls -al ~/.ssh
디렉터리를 따로 변경하지 않았다면 아래에 생성되어 있을 것입니다.
drwx------ 4 leby.y.kim staff 128 3 18 12:27 .
drwxr-xr-x+ 63 leby.y.kim staff 2016 3 18 12:31 ..
-rw------- 1 leby.y.kim staff 1675 3 18 12:27 id_rsa
-rw-r--r-- 1 leby.y.kim staff 421 3 18 12:27 id_rsa.pub
id_rsa : 비공개 키(Private Key), 절대로 타인에게 노출되면 안되는 키입니다.
id_rsa.pub: 공개 키(Public Key), 접속하려면 원격 서버에 authorized_keys로 저장되는 키입니다.
SSH Key 파일 업로드
ftp로 파일을 업로드해도 되지만, 간편하게 scp 명령어를 사용하여 Command로 업로드 하려고 합니다.
scp ~/.ssh/id_rsa.pub root@원격 서버 아이피(또는 도메인):id_rsa.pub
Are you sure you want to continue connecting (yes/no)? yes
root@원격 서버 아이피 password: (비밀번호 입력)
id_rsa.pub 100% 421 89.1KB/s 00:00
서버 (Linux)
SSH Key 파일 저장
이제 서버에 접속하여 ~/.ssh 디렉터리가 있는지 확인 후 없으면 아래 명령어를 사용하여 생성하고 권한을 변경합니다.
mkdir ~/.ssh
chmod 700 ~/.ssh
그리고 아까 클라이언트에서 전송한 id_rsa.pub 파일을 authorized_keys에 추가해줍니다.
아래 명령어를 사용하여 추가하면 됩니다.
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
클라이언트 SSH 접속 확인
Mac 터미널을 실행하여 다음 명령어를 입력합니다.
ssh root@원격 서버 아이피
비밀번호 없이 서버로 접속이 되었다면 성공적으로 SSH Key 등록을 완료한 것 입니다.
'Backup > Linux' 카테고리의 다른 글
리눅스 이미 설치된 Java 버전 업데이트 (0) | 2019.01.09 |
---|---|
AWS EC2 인스턴스 MariaDB 한글 깨짐 현상 해결 방법 (0) | 2018.01.15 |
AWS EC2 인스턴스 MariaDB 외부 접속 설정 및 Toad(토드)로 접속하기 (0) | 2018.01.14 |
리눅스 특정 포트 확인, 포트 프로그램 확인, 포트 프로그램 죽이기 (0) | 2018.01.12 |
AWS EC2 인스턴스 SVN 설치 및 설정하기 (Trunk, Branch, Tag, Merge) (1) | 2018.01.08 |
댓글
이 글 공유하기
다른 글
-
리눅스 이미 설치된 Java 버전 업데이트
리눅스 이미 설치된 Java 버전 업데이트
2019.01.09 -
AWS EC2 인스턴스 MariaDB 한글 깨짐 현상 해결 방법
AWS EC2 인스턴스 MariaDB 한글 깨짐 현상 해결 방법
2018.01.15 -
AWS EC2 인스턴스 MariaDB 외부 접속 설정 및 Toad(토드)로 접속하기
AWS EC2 인스턴스 MariaDB 외부 접속 설정 및 Toad(토드)로 접속하기
2018.01.14 -
리눅스 특정 포트 확인, 포트 프로그램 확인, 포트 프로그램 죽이기
리눅스 특정 포트 확인, 포트 프로그램 확인, 포트 프로그램 죽이기
2018.01.12