SSH-KEYGEN(1)

명칭
ssh-keygen - 인증용의 열쇠를 생성, 관리, 및 변환한다

서식
ssh-keygen [-q] [-b 비트수] -t 열쇠의 종류 [-N 새로운 패스 프레이즈] [-C 코멘트 (역주: SSH1 마셔)] [-f 출력처 identity 파일] ssh-keygen -p [-P 낡은 패스 프레이즈] [-N 새로운 패스 프레이즈] [-f 패스 프레이즈를 변경하는 identity 파일] ssh-keygen -i [-f 변환하는 identity 파일] ssh-keygen -e [-f 변환하는 identity 파일] ssh-keygen -y [-f identity 파일] ssh-keygen -c [-P 패스 프레이즈] [-C 코멘트] [-f 코멘트를 변경하는 identity 파일] ssh-keygen -l [-f 지문을 표시하는 identity 파일] ssh-keygen -B [-f 다이제스트를 표시하는 identity 파일] ssh-keygen -D 리더 ssh-keygen -U 리더 [-f 입력하는 identity 파일]

해설
ssh-keygen 하 ssh(1) 그리고 인증에 사용하는 열쇠를 생성, 관리 및 변환합니다. ssh-keygen (은)는 SSH 프로토콜 버젼 1 으로 사용되는 RSA 열쇠와 SSH 프로토콜 버젼 2 로 사용되는 RSA 열쇠 및 DSA 열쇠를 생성할 수 있습니다. 생성하는 열쇠의 종류는 -t 옵션에 의해 지정할 수 있습니다.

보통, RSA 인증 또는 DSA 인증으로 SSH 를 사용하고 싶은 유저는, 한 번 이 프로그램을 실행하면 $HOME/.ssh/identity , $HOME/.ssh/id_dsa 또는 $HOME/.ssh/id_rsa 에 열쇠 (identity 파일)를 만들 수가 있습니다. 또 /etc/rc 등으로 견같게, 시스템 관리 책임자가 호스트열쇠를 생성하기 위해서 이 프로그램을 사용할 수도 있습니다.

통상, 이 프로그램은 열쇠를 생성한 뒤, 그 열쇠 (identity)를 어느 파일에 격납하면 좋은 것인지 묻습니다. 공개열쇠는, 비밀열쇠를 포함한 identity 파일의 이름에 “.pub” (을)를 붙인 이름의 파일로서 격납됩니다. 또 이 프로그램은 패스 프레이즈도 물어 옵니다. 임의의 길이의 캐릭터 라인을 패스 프레이즈로서 사용할 수가 있습니다. 패스 프레이즈를 적지 않을 때에는, 이것은 하늘에서도 괜찮습니다 (호스트열쇠의 패스 프레이즈는 반드시 하늘이 아니면 안됩니다). 패러프레이즈는 패스워드를 닮아 있습니다만, 패스워드와는 달라 단어의 열이나 구두점, 수치, 공백 등, 좋아하는 캐릭터를 포함할 수가 있습니다. 좋은 패스 프레이즈란, 10~30 캐릭터 정도의 길이로, 간단한 문장이나 용이하게 추측할 수 있는 것이 아닌 것입니다 (영어의 산문에서는 1 캐릭터 근처의 엔트로피는 불과 1~2 비트 밖에 없고, 패스 프레이즈로서는 매우 바람직하지는 않습니다). 또 대문자와 소문자가 섞이고 있는 것이 좋을 것입니다. 패스 프레이즈는 -p 옵션에 의해, 나중에 변경할 수도 있습니다.

잃게 되어 버린 패스 프레이즈를 기초로 되돌릴 수 없습니다. 만약 패스 프레이즈를 잊어 버리거나 없애 버렸을 때에는, 새로운 열쇠를 생성해 그 공개열쇠를 다른 머신에 카피하지 않으면 되지 않을 것입니다.

RSA1 열쇠 (역주: SSH1 로 사용하는 열쇠)의 경우, 열쇠의 파일에는 코멘트 필드가 있습니다. 이것은 유저가 열쇠를 구별하기 위해(때문에)인 만큼 편의적으로 준비되어 있는 것입니다 (역주: SSH2 의 열쇠에는 코멘트는 없습니다). 코멘트에는 열쇠의 용도나 그 외 유용한 정보를 써 둘 수가 있습니다. 최초로 열쇠가 만들어질 때, 코멘트는 “user@host” 의 형태에 초기화됩니다만, -c 옵션을 사용하면 변경할 수가 있습니다.

열쇠를 생성한 뒤, 그것을 사용 가능하게 하기 위해서 어디에 두면 좋은가는 다음에 설명하고 있습니다.

옵션에는 다음과 같은 것이 있습니다:

-b 비트수
    생성하는 열쇠의 비트수를 지정합니다. 최소치는 512 비트입니다. 보통은 1024 비트의 열쇠로 충분하다고 생각되고 있어 더 이상 열쇠를 길게 해도 보안의 향상에는 도움이 되지 않고, 늦어질 뿐입니다. 디폴트는 1024 비트가 되어 있습니다.

-c  비밀열쇠 파일 및 공개열쇠 파일의 코멘트를 변경합니다. 이 옵션은 프로토콜 버젼 1 에 있어서의 RSA 열쇠 에 대해서만 유효합니다. 우선 비밀열쇠가 들어가 있는 파일명을 질문받아 패스 프레이즈가 있으면 그것을 입력한 뒤에 새로운 코멘트를 입력합니다.

-e  이 옵션은 OpenSSH 형식의 비밀열쇠 혹은 공개열쇠 파일을 읽어, ‘SECSH Public Key File Format (SECSH 공개열쇠 파일 형식)’ 의 열쇠를 표준 출력에 표시합니다. 이 옵션을 사용하면(자), OpenSSH 의 열쇠를 몇개의 상용 SSH 실장으로 사용되고 있는 형식의 열쇠로 변환할 수 있습니다.

-f 파일명
    열쇠를 넣는 파일의 파일명을 지정합니다.

-i  이 옵션은 SSH2-호환의 형식인, 암호화되어 있지 않다 비밀열쇠 (혹은 공개열쇠) 파일을 읽어, 그것을 OpenSSH 호환의 비밀열쇠 (혹은 공개열쇠)로 변환해 표준 출력에 표시합니다. ssh-keygen 하 ‘SECSH Public Key File Format (SECSH 공개열쇠 파일 형식)’ 의 열쇠도 읽어들일 수 있습니다. 이 옵션을 사용하면(자), 몇개의 상용 SSH 실장으로 사용되고 있다 열쇠를 OpenSSH 로 사용할 수 있습니다.

-l  지정된 비밀열쇠 파일 혹은 공개열쇠 파일의 지문 (fingerprint)을 표시합니다. 프로토콜 버젼 1 에 있어서의 RSA 열쇠 (RSA1)도 서포트되고 있습니다. 프로토콜 버젼 2 의 RSA 및 DSA 열쇠의 경우, ssh-keygen (은)는 거기에 해당하는 공개열쇠 파일을 찾아내 그 지문을 표시합니다.

-p  새롭게 비밀열쇠를 만드는 것이 아니라, 벌써 있는 비밀열쇠 파일의 패스 프레이즈를 변경합니다. 우선 비밀열쇠가 들어가 있는 파일을 질문받아 낡은 패스 프레이즈를 입력한 뒤, 새로운 패스워드를 2회 입력합니다.

-q  조용한 ssh-keygen /etc/rc 그리고 새로운 열쇠를 만들 때 사용됩니다.

-y  이 옵션은 OpenSSH 형식의 비밀열쇠 파일을 읽어, OpenSSH 형식의 공개열쇠를 표준 출력에 표시합니다.

-t 열쇠의 종류
    생성하는 열쇠의 종류를 지정합니다. 취할 수 있는 값으로서 프로토콜 버젼 1 으로 사용한다 “rsa1” , 및 프로토콜 버젼 2 로 사용한다 “rsa” 또는 “dsa” (이)가 있습니다.

-B  지정된 비밀열쇠 혹은 공개열쇠의 bubblebabble 다이제스트를 표시합니다.

-C 코멘트
    새로운 코멘트를 지정합니다.

-D 리더
    스마트 카드 리더 에 격납되고 있는 RSA 공개열쇠를 다운로드합니다.

-N 새로운 패스 프레이즈
    새로운 패스 프레이즈를 지정합니다.

-P 패스 프레이즈
    (낡다) 패스 프레이즈를 지정합니다.

-U reader
    벌써 존재하고 있는 RSA 공개열쇠를 스마트 카드 리더 에 업 로드합니다.

관련 파일

$HOME/.ssh/identity
    그 유저의, 프로토콜 버젼 1 에 있어서의 RSA 인증용 비밀열쇠를 격납합니다. 이 파일은 그 유저 이외의 누구에게도 보여서는 안됩니다. 이 열쇠를 생성할 경우에 패스 프레이즈를 지정하는 거적 할 수 있습니다. 패스 프레이즈는, 3DES 를 사용해 파일중의 비밀열쇠의 부분을 암호화하는데 이용됩니다. 이 파일은 ssh-keygen 에 의해 자동적으로 액세스 되는 것은 아닙니다만, 비밀열쇠 파일의 디폴트의 이름으로서 이것이 제안됩니다. ssh(1) (은)는 로그인 요구가 있었을 때에 이 파일을 읽어들입니다.

$HOME/.ssh/identity.pub
    프로토콜 버젼 1 에 있어서의 RSA 인증용의 공개열쇠를 격납합니다. 그 유저가 RSA 인증으로 로그인하고 싶은 모든 머신의 $HOME/.ssh/authorized_keys 에 이 파일의 내용을 추가해 두어 주세요. 이 파일의 내용을 비밀로 해 둘 필요는 없습니다.

$HOME/.ssh/id_dsa
    그 유저의, 프로토콜 버젼 2 에 있어서의 DSA 인증용 비밀열쇠를 격납합니다. 이 파일은 그 유저 이외의 누구에게도 보여서는 안됩니다. 이 열쇠를 생성할 경우에 패스 프레이즈를 지정하는 거적 할 수 있습니다. 패스 프레이즈는, 3DES 를 사용해 파일중의 비밀열쇠의 부분을 암호화하는데 이용됩니다. 이 파일은 ssh-keygen 에 의해 자동적으로 액세스 되는 것은 아닙니다만, 비밀열쇠 파일의 디폴트의 이름으로서 이것이 제안됩니다. ssh(1) (은)는 로그인 요구가 있었을 때에 이 파일을 읽어들입니다.

$HOME/.ssh/id_dsa.pub
    프로토콜 버젼 2 에 있어서의 DSA 인증용의 공개열쇠를 격납합니다. 그 유저가 DSA 인증으로 로그인하고 싶은 모든 머신의 $HOME/.ssh/authorized_keys 에 이 파일의 내용을 추가해 두어 주세요. 이 파일의 내용을 비밀로 해 둘 필요는 없습니다.

$HOME/.ssh/id_rsa
    그 유저의, 프로토콜 버젼 2 에 있어서의 RSA 인증용 비밀열쇠를 격납합니다. 이 파일은 그 유저 이외의 누구에게도 보여서는 안됩니다. 이 열쇠를 생성할 경우에 패스 프레이즈를 지정하는 거적 할 수 있습니다. 패스 프레이즈는, 3DES 를 사용해 파일중의 비밀열쇠의 부분을 암호화하는데 이용됩니다. 이 파일은 ssh-keygen 에 의해 자동적으로 액세스 되는 것은 아닙니다만, 비밀열쇠 파일의 디폴트의 이름으로서 이것이 제안됩니다. ssh(1) (은)는 로그인 요구가 있었을 때에 이 파일을 읽어들입니다.

$HOME/.ssh/id_rsa.pub
    프로토콜 버젼 2 에 있어서의 RSA 인증용의 공개열쇠를 격납합니다. 그 유저가 RSA 인증으로 로그인하고 싶은 모든 머신의 $HOME/.ssh/authorized_keys 에 이 파일의 내용을 추가해 두어 주세요. 이 파일의 내용을 비밀로 해 둘 필요는 없습니다.

저자
OpenSSH 는 Tatu Ylonen 에 의한, 프리인 오리지날판 ssh 1.2. 12 릴리스로부터 파생한 것입니다. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt 및 Dug Song 가 많은 버그를 제거해, 새로운 기능을 다시 추가해 OpenSSH 를 만들었습니다. SSH 프로토콜 버젼 1.5 및 2.0 의 서포트는 Markus Friedl 의 공헌에 의하는 것입니다.

일본어 번역
니이야마 유스케 (yusuke at cs . nyu . edu) 2002/6/21 (for 3.3p1)

당메뉴얼 페이지는 씨의 호의에 의해 FreeBSD 일본어 메뉴얼에 수록하고 있습니다. 번역에 대한 의견, 지적이 있으면 니이야마씨 (yusuke at cs . nyu . edu), 및 FreeBSD jpman 프로젝트 <man-jp@jp.FreeBSD.org> 까지 전송해 주세요.

관련 항목
ssh(1), ssh-add(1), ssh-agent(1), sshd(8) J. Galbraith, R. Thayer, SECSH Public Key File Format, draft-ietf-secsh-publickeyfile-01.txt, March 2001, work in progress material.