본문 바로가기
컴소니/리눅스

SSH Key를 통한 안전하고 간편한 로그인

by 금소니 2022. 5. 11.
반응형

#216

1. SSH key란?

SSH Key는 말그대로 SSH를 접속할 때 사용되는 Key입니다.

Key가 있기때문에 별도의 ID/PW 입력 없이 바로 접속이 가능하여 간편하게 로그인할 수 있지만 Key가 없는 사용자에게는 로그인이 제한되기 때문에 보안적인 면에서도 우수합니다.

 

2. SSH Key 동작방식

SSH Key는 공개키 암호화 방식을 통해 동작합니다.

(공개키 암호화 방식은 총 두개의 키(공개키와 개인키)를 가지며 개인키는 외부에 알려져서는 안되는 비공개키이며, 공개키는 말그대로 공개되는 키입니다.)

 

1) 클라이언트(접속 장비)에서 SSH Key(공개키와 개인키) 생성(만약 생성이 되어있다면 생략)

2) 서버로 공개키를 전달(개인키는 당연히 클라이언트에만 보관하고 있어야함)

3) 서버에 공개키 등록

4) 클라이언트에서 SSH Key를 통하여 로그인

 

생각보다 과정이 복잡하지 않아 바로 진행해보도록 하겠습니다.

 

3. SSH Key를 통한 로그인

1) 클라이언트에서 SSH Key 생성

리눅스에서 ssh-keygen을 이용하여 SSH Key를 생성할 수 있습니다.

공개키 암호화 방식을 이용할 예정이므로 RSA 알고리즘을 이용하여 생성하도록 하겠습니다.

$ ssh-keygen -t rsa

해당 명령을 실행하면 Key를 생성할 수 있는데 Key를 저장하는 경로와 Key 인증 시 필요한 문구(passphrase)를 입력하라고 나옵니다.

만약 기본 경로로 지정하고 인증 문구를 생략하고자 하신다면 Enter로 넘어가시면 됩니다.

그럼 해당 지정된 경로에 2개의 파일이 생성된 것을 보실 수 있습니다.

느낌상 .pub이라는 확장자를 가진 파일이 공개키이고 확장자가 없는 파일이 개인키로 보이시죠?

 

2) 서버로 공개키를 전달하고 등록

그럼 이제 접근하고자하는 서버에 공개키를 전달해보도록 하겠습니다.

전달하는 방법은 자유롭게 이용하시면 됩니다.

단, 어디에 어떻게 옮겨줘야하는지를 잘 알아두셔야 합니다.

경로는 서버도 마찬가지로 .ssh 경로에 넣어주셔야 하며, 공개키가 등록되어있는 파일(authorized_keys)에 append해주셔야 합니다.

$ cat id_rsa.pub >> .ssh/authorized_keys

저의 경우에는 서버에도 Key를 생성하여 위와같이 보이지만 만약 서버에 Key를 생성하시지 않으셨다면 .ssh폴더와 authorized_keys 파일을 생성해주셔야 합니다.

그리고 append하는 이유는 다른 공개키들도 등록이 되어있기때문에 기존 Key들이 사라지지 않도록 해주는 작업이니 꼭 주의하시기 바랍니다.

 

3) 클라이언트에서 서버로 접속해보기

그럼 공개키를 등록도 했겠다 한 번 접속해보도록 하겠습니다.

참고로 공개키를 생성한 계정으로 클라이언트에서 서버로 접근해야 한다는건 잊으시면 안됩니다.

서버의 IP는 192.168.128.130입니다.

한 번 접속해보도록 하겠습니다.

짜잔! 정상적으로 접속하는 것을 확인할 수 있었습니다.

이제 ID/PW 입력 없이 편하게 로그인할 수 있습니다.

반응형

댓글