ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [홈서버] 윈도우10 OpenSSH Server, authorized_keys 사용하기
    홈서버 2020. 4. 3. 18:05

      증권사 api를 구현할 경우 그 api가 win32에 종속적인 경우가 많다. 그래서 윈도우기반의 서버가 필요하였고 젠킨스에서 자동배포를 위해 ssh, sftp를 키 기반으로 접근하고 싶었다. 물론 젠킨스에 'Publish Over SSH' 플러그인을 사용하면 계정/패스워드로 접근이 가능하다.

      그러나 목적은 공개키를 authorized_keys 파일에 등록하여 사용하기다.

     

      진행 순서는 다음과 같다.

     

    1. 윈도우 10 OpenSSH Server 설치

    2. sshd 서비스 시작

    3. key 생성

    4. sshd config 수정

    5. sshd 서비스 재시작

     

    1. 윈도우 10 OpenSSH Server 설치

     

    윈도우 키 - 설정 - 앱 - 선택적기능 - 기능 추가 선택
    OpenSSH 서버를 선택 후 설치

     

      설치를 간단히 끝낸 후 데몬을 실행 하여야 한다.

     

    2. sshd 서비스 시작

     

    검색 - powershell 우클릭 관리자 권한으로 실행

     

      PowerShell을 관라자 권한으로 실행 후에 다음 명령어를 이용하여 sshd를 실행한다.

    c:\> Start-Service sshd

      netstat 명령어로 22번 포트가 정상적으로 리슨 상태 인지 확인 한다.

    c:\> netstat -an | findstr "22"

     

    3. key 생성

      클라이언트 특정 계정의 공개키를 이용해 해당 서버에 접근하기 위해서 키생성 작업과 config 파일 수정이 필요하다.

      클라이언트 OS는 우분투이다.  먼저 키 생성 작업을 한다.

     ssh-keygen -t rsa

    계정의 홈디렉토리에서 .ssh 디렉토리로 이동 후 키젠을 이용하여 키를 생성한다.  .ssh 디렉토리가 없으면 mkdir로 생성한다.

     

    키젠을 이용한 키생성

     

      클라이언트 계정에서 키젠을 사용하면 공개키(id_rsa.pub)와 개인키(id_rsa)가 발급되는데 공개키의 내용을 대상 서버 계정의 .ssh/

    authorized_keys 파일에 넣어두어야 한다.  여기선 공개키 내용을 cat 명령어로 확인 후 복붙으로 대상 서버에 넣겠다.

      ssh를 이용하여 대상 서버에 접근한다.

    $ ssh test@172.30.1.85

     

    ssh 접속

     

      접속 후 .ssh 디렉토리와 authorized_keys 파일을 생성해준다.

     

    c:\Users\test> mkdir .ssh&&cd .ssh
    c:\Users\test> copy con authorized_keys

    위의 명령 입력 후 id_rsa.pub 의 내용을 붙여 넣은 후 컨트롤 + z 을 눌러 파일을 저장한다.

     

    4. sshd config 수정

      sshd의 기본 참조 파일은 administrators_authorized_keys 이다.  이 설정을 각 계정의 .ssh/authorized_keys  파일을 사용하기 위해선 해당 설정을 주석처리 하여야 한다.  그러나 이 방법은 기본설정에 비해 보안적인 이슈가 있지만, 편리성을 위해 사용하려고 한다.

    - 각 계정의 authorized_keys 사용시 이슈

    https://github.com/PowerShell/Win32-OpenSSH/issues/1324

     

     

    메모장을 관리자 권한으로 실행 후 c:\ProgramData\ssh 디렉토리로 열기 * 모든파일로 보기 *
    해당 부분을 주석 처리

     

      Match Group administrators

      AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

      두 줄 주석처리 후 저장한다.

     

    5. sshd 서비스 재시작

      config 파일 적용을 위해 ssh 데몬을 정지 후 다시 시작한다.

     

    netstat 명령어로 포트 리슨 확인

     

      이 후 클라이언트 계정에서 ssh로 해당 서버의 계정으로 접근시 더 이상 패스워드를 묻지 않는다.

    댓글 0

Designed by Tistory.