윈도우에서 powershell을 이용해 scp 명령으로 자료를 받아오는 스크립트를 만들어보려는 도중 자동으로 비밀번호를 인증시켜 작업 스케줄러에 걸어놓을 수 있는 방법을 찾던 도중 ssh-keygen 을 통해 작업이 가능함을 알게되었습니다.
ssh-keygen 설정에 대하여 알아보겠습니다.
SSH Key란?
서버에 접속할 때 비밀번호 대신 key를 제출하는 방식입니다.
보통 비밀번호 보다 높은 수준의 보안을 필요로 하거나 로그인 없이 자동으로 서버에 접속할 때 사용하게 됩니다.
SSH Key 개념에서 공개키와 비밀키에 대한 개념의 이해가 중요합니다.
SSH Key는 공개키(Public Key)와 비밀키(Private Key)로 이루어 지며 비밀키는 로컬머신에 위치하고 공개키는 서버에 위치합니다. 암호를 걸 때와 풀 때 사용하는 키가 다르기 때문에 비대칭 암호방식이라고 부릅니다.
공개키는 평문을 암호화한다면 비밀키는 암호문을 다시 평문으로 변환합니다.
예를들어 집에서 회사 서버에 접속한다고 가정해보겠습니다.
집에서 공개키/비밀키를 생성해둡니다. 그리고 공개키를 서버에 보냅니다.
이 때 해커가 네트워크상에서 공개키를 낚아챕니다.
서버에 공개키를 보낸 후 집에서 비밀키로 암호화하여 서버에 정보를 전달합니다.
이 때 해커가 조금전에 낚아챈 공개키를 사용하여 집에서 회사서버로 보낸 명령을 복호화합니다.
집에서 회사서버로 보낸 정보를 강탈하는데 성공합니다. (어떤 정보를 요청했는지 알게 됩니다. 클라이언트->서버)
서버에서 집 PC의 요청을 받아 정보를 가공하여 집 PC로 전달합니다.
집에서 비밀키로 서버가 보낸 정보를 해석합니다.
이 때도 해커가 서버에서 집으로 보낸 정보를 낚아챕니다.
하지만 비밀키가 없기 때문에 복호화 할 수 없습니다.(비밀키는 집PC에만 있고 네트워크상으로 전달하지 않았기 때문)
결국 해커는 클라이언트(집)가 서버(회사)로 요청한 정보가 무엇인지는 알아낼 수 있지만 서버가 클라이언트로 보낸 응답에 대해서는 해석할 수 없게 됩니다.
SSH Key 생성하기
1. powershell을 실행합니다. (실행 -> powershell)
2. ssh-keygen으로 키를 생성합니다.
1번은 key를 저장할 위치를 입력합니다. (그냥 Enter 시 Default 폴더에 저장됨. 위에선 c:\users\wlsgh/.ssh/id_rsa 가 됩니다.)
2번은 키를 사용할 때 필요한 비밀번호를 입력합니다. (비밀번호 없이 그냥 로그인하려면 그냥 Enter)
3번은 비밀번호 확인 입니다.
키를 사용할 때 비밀번호를 설정하는 이유는 혹시라도 비밀키가 유출되었을 때 비밀번호를 입력해야 사용할 수 있기 때문에 보안상 더 안전합니다.
3. 키 파일이 생성되었는지 확인합니다.
SSH Key 서버에 업로드
1. scp 로 public 키 파일 전송
2. 해당 서버에 잘 전송되었는지 확인
SSH Key 파일 등록
서버에서 작업합니다.
이후 로컬머신에서 서버로 SSH 접속을 시도해봅니다.
비밀번호 입력란 없이 바로 접속되는 것을 확인할 수 있습니다.
(만약 위 키생성 시 비밀키 비밀번호 입력을 했다면 해당 비밀번호를 입력해야 접속이 됩니다)
'Windows' 카테고리의 다른 글
[error] e1dexpress event id 27 - 네트워크 끊김현상 (0) | 2022.02.12 |
---|---|
BOOTMGR IS MISSING 원인 및 해결방법 (0) | 2021.04.22 |
Powershell 스크립트 실행하기 (PSSecurityException 에러) (0) | 2021.04.09 |
[Windows10] GOD MODE ? (0) | 2021.02.26 |
윈도우 10 정품인증 CMD (0) | 2021.02.10 |