주로, cvs나 svn을 ssh를 이용하여 사용할 때 유용한데, cvs의 경우 update, commit 등 각 명령어 마다 ssh 암호를 물어 본다. 이건 아주 귀찮은 작업이다.
- 먼저 사용중인 컴퓨터를 위한 공개키/개인키를 생성한다.
키는 $HOME/.ssh 디렉토리에 생성되며, id_dsa는 개인키이고, id_dsa.pub 는 공개키다.
$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/king/.ssh/id_dsa): (hit enter)
Enter passphrase (empty for no passphrase): (enter a passphrase)
Enter same passphrase again: (enter it again)
Your identification has been saved in /home/king/.ssh/id_dsa.
Your public key has been saved in /home/king/.ssh/id_dsa.pub.
The key fingerprint is:
a4:e7:f2:39:a7:eb:fd:f8:39:f1:f1:7b:fe:48:a1:09 king@blue
- 공개키를 접속하기를 원하는 컴퓨터에 등록한다.
추가 방법은 다음과 같다.
이제 접속을 하면 조금 다른 인증 과정을 거친다. 키를 만들때 등록한 암호를 통하여 접속하게 된다.
$ scp $HOME/.ssh/id_dsa.pub user@target:~/.ssh
$ ssh user@target
$ cat .ssh/id_dsa.pub >> .ssh/authorized_keys
$ ssh user@target
Enter passphrase for key '/home/king/.ssh/id_dsa':
여기까지의 결과는 일반적인 접속 방식과 크게 다를 바가 없다. 하지만, 생성된 키를 keychain을 통해 관리하게 되면 상황이 달라진다.
- keychain을 이용하여 키를 관리하도록 한다.
keychain을 사용하면, session 형태의 관리를 지원하므로, 한번의 설정으로 접속시 물어보는 암호 확인 절차를 생략할 수 있다.
다음과 같은 명령으로 keychain을 실행한다.
$ /usr/bin/keychain id_dsa
Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL
* Initializing /home/king/.keychain/blue-sh file...
* Initializing /home/king/.keychain/blue-csh file...
* Initializing /home/king/.keychain/blue-fish file...
* Starting ssh-agent
* Initializing /home/king/.keychain/blue-sh-gpg file...
* Initializing /home/king/.keychain/blue-csh-gpg file...
* Initializing /home/king/.keychain/blue-fish-gpg file...
* Starting gpg-agent
* Error: Failed to start gpg-agent
* Adding 1 ssh key(s)...
Enter passphrase for /home/king/.ssh/id_dsa: (enter a passphrase)
$ source $HOME/.keychain/tal-sh
$ ssh user@target
이 명령어 중에 keychain을 실행 시키는 명령은 단 한번만 실행하면 되고, tal-sh를 실행 시키는 과정은 .bashrc 에 등록하여 매번 shell이 동작할 때 마다 해 주어야 하는 작업이다.
keychain이 동작시 생성되는 환경 변수를 $HOME/.keychain 디렉토리에 저장한다. 이 환경 변수를 설정하면 암호 확인 없이 target에 접속할 수 있게 된다.
때문에, .bashrc에 다음과 같은 간단한 명령을 추가하는 것이 좋다.
if [ -f $HOME/.keychain/tal-sh ]; then
source $HOME/.keychain/tal-sh
fi
더불어 keychain을 간단히 다음과 같이 등록하여 사용해도 좋다.
keychain() {
/usr/bin/keychain id_dsa
source $HOME/.keychain/tal-sh
}
댓글 없음:
댓글 쓰기