본문 바로가기
About Computer/서버관리

Simple public key generation based on OpenSSH

by leanu 2009. 12. 11.
Purpose

암호없이 계정권한을 얻기. (좀더 편안한 계정 접속및 기타 서비스이용을 위하여). A계정의 public 키를 B에 등록해두면 A에서 B로 접속을 하거나( ssh 이용) 혹은 B로부터 계정암호를 요구하는 서비스를 이용하는 경우 암호를 입력하지 않아도 이용가능하게 하는 보안기술중 하나.

Essential Program : OpenSSH 

Generating public key of local account.

  1. key-gen는 키를 생성하는 쪽 계정. OpenSSH 버전이 높은경우 ssh-keygen option 이 다를수 있다. 권장하는 사항은 아니지만 passphrase에 아무것도 입력을 하지 않으면 나중에 계정권한을 비번없이 얻을수 있다. (물론 key 를 요청하는 쪽에서도 key 를 가지고 있어야 가능)

    key-gen server$ mkdir ~/.ssh
    key-gen server$ chmod 700 ~/.ssh
    key-gen server$ ssh-keygen -q -f ~/.ssh/id_rsa -t rsa
    Enter passphrase (empty for no passphrase) : ...

  2. ~/.ssh 에 보면 파일이 2개 생성되었다. id_rsa & id_rsa.pub 이 중에서 id_rsa.pub를 public key 를 등록할 서버 계정으로 보낸다. 복사하는 방법은 여러가지니 취향껏 선택하기 바람. www.test ~ user1은 복사할 계정주소 및 디렉토리 명이다.

    key-gen server$ scp ~/.ssh/id_rsa.pub www.test.address.com:/home/user1

Public key destribution.

  1. public key 복사가 완료되면 키등록 작업을 한다. id_rsa.pub 는 ~/ 에 있는 것으로 가정한다.

    key-reg server$ mkdir ~/.ssh
    key-reg server$ chmod 700 ~/.ssh
    key-reg server$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
    key-reg server$ chmod 600 ~/.ssh/authorized_keys

  2. 복사가 완료되면 id_rsa.pub 는 삭제해도 된다.

  3. 다른서버의 id_rsa.pub 도 authorized_keys 에 추가로 저장할 수 있다.

  4. Tip : id_rsa.pub 를 생성한 서버에 public key 를 등록하면 local 에서 local로 향하는 패스워드 요구 서비스를 요청 없이 이용할 수 있다. ( ex. rsync 같은 경우 로컬에서 로컬로 sync 를 함에도 암호를 요구한다. 프로그램 내에서 이를 이용할 경우 public_key 를 이용하면 암호요구 없이 진행이 가능하다. ) 


댓글