Keychain/ko

이 문서는 키 모음 프로그램에서 SSH 키 공유 방식을 설명합니다. 이 글에서는 독자 여러분이 기본적인 공개 키 암호화 지식을 갖추었다고 가정합니다.

손 아귀에 쥔 문제
모든 시스템에 매번 로그인 할 때마다 암호를 입력하는 과정은 불편하며, 게다가 수많은 시스템을 관리할 경우 특히 그렇습니다. 일부 관리자는 스크립트 또는 크론 작업을 ssh 연결 과정을 활용하여 편하게 처리하려 합니다. 각각의 방법에 이 문제에 대한 해결책이 있으며 공개 키 인증으로 시작합니다.

공개 키 인증은 어떻게 동작할까?
클라이언트가 서버의 ssh 데몬에 연결하려 한다고 가정해보겠습니다. 클라이언트는 우선 키 쌍을 만들어 서버에 공개 키를 제공합니다. 그 다음 클라이언트가 연결을 시도할 때마다 서버에서는 공용 키로 암호화한 정보를 던져줍니다. 개인 키에 따른 홀더(클라이언트)만이 이 정보를 해독할 수 있으므로, 올바른 응답을 해야만 인증을 성공적으로 처리할 수 있습니다.

키 쌍 만들기
The first step is to create a key pair. To do this, use the command:

기본 값을 허용하고 강한 암호를 입력해보십시오.

키 쌍 만들기 절차가 끝나고 나면 에 개인 키가 들어가고  에 공개 키가 들어갑니다. 공개 키는 이제 원격 호스트에 복사할 준비가 되었습니다.

서버 준비
The file needs to be copied over to the server running. It has to be added to the file that belongs the connecting user on the remote server. After access to the server has been granted by infrastructure personnel, the following steps can be used to setup automatic login using a public key on the remote server:

마지막 줄 출력 내용에 파일의 내용이 나타나야 합니다. 출력 내용이 올바른지 확인하십시오.

설정 시험
Theoretically, if all went well, and the daemon on the server allows it (as this can be configured),  access without entering a password should now be possible on the server. The private key on the client will still need to be decrypted with the passphrase used previously, but this should not be confused with the password of the user account on the server.

It should have asked for a passphrase for, and then grant access via as the user   on the server. If not, login as, and verify that the contents of  has each entry (which is a public key) on a single line. It is also a good idea to check the sshd configuration to make sure that it allows to use public key authorization when available.

여기서, 독자 여러분은 아마 이렇게 생각하실텐데요. "단지 암호를 바꿨을 뿐인데 뭔가 문제지?!". 잠시 후에, 다음 장에서 이 암호를 한번만 입력하고 다중 로그인 과정에서 (복호화) 키를 다시 사용할 수 있는지 확실하게 보여드리겠습니다.

ssh-agent로 키 관리하기
The next step is to decrypt the private key(s) once, and gain the ability to ssh freely, without any passwords. That is exactly what the program is for.

is usually started at the beginning of the X session, or from a shell startup script like. It works by creating a unix-socket, and registering the appropriate environment variables so that all subsequent applications can take advantage of its services by connecting to that socket. Clearly, it only makes sense to start it in the parent process of an X session to use the set of decrypted private keys in all subsequent X applications.

When running, it should output the PID of the running ssh-agent, and also set a few environment variables, namely SSH_AUTH_SOCK and SSH_AGENT_PID. It should also automatically add to it's collection and ask the user for the corresponding passphrase. If other private keys exist which need to be added to the running ssh-agent, use the command:

이제 마술을 부릴 차례입니다. 복호화 한 개인 키를 준비하고, 암호를 입력하지 마시고 ssh로 (공개 키를 설정 한) 서버에 접속하십시오:

ssh-agent를 그만두(고 나중에 암호를 다시 요구하게 하)려면:

To get even more convenience from ssh-agent, proceed to the next section on using keychain. Be sure to kill the running ssh-agent as keychain will handle the sessions itself.

ssh-agent 이외의 영역에서 간편함의 정수를 뽑아내기
키 모음은 로그인을 할 때마다 ssh-agent를 재사용할 수 있게 하며, 사용자의 선택에 따라 사용자가 로그인할 때마다 암호를 물어보기도합니다. 우선 이머지 해보도록 하겠습니다:

Assuming that was successful, can now be used. Add the following to the file to enable it:

이제 시험해보십시오. 우선 앞 장에서 실행한 ssh-agent를 강제로 끝냈는지 확인하시고, 로그인만 해서 새 쉘을 시작하거나 새 터미널을 여십시오. 명령줄마다 지정한 각각의 키에 대한 암호를 물어봐야 합니다. 모든 쉘은 이 시점 이후로 열릴 때마다 ssh-agent를 재사용하는데, ssh 연결을 처리할 때마다 암호 없이 연결할 수 있게 합니다.

KDE에서 키 모음 활용하기
KDE 사용자는 파일을 사용하는 대신 KDE 자체에서 ssh-agent를 관리하게 할 수 있습니다. 이렇게 하려면, KDE를 시작할 때 를, KDE를 끝낼 때 를 실행하도록 합니다. 이 파일을 다음처럼 편집하시면 됩니다:

이제, Konsole과 같이 여러분이 선택하고자 하는 터미널을 실행하고 올바른 키 모음을 불러오기만 하면 됩니다. 예를 들면:

해당 키는 KDE 세션이 끝나기 전까지 기억해둡니다(또는 ssh-agent 프로세스를 직접 강제로 끝내기 전까지 유효합니다).

플라즈마 5에서 키 모음 활용하기
As above for KDE 4 except replace with.

보안 고려사항
물론 를 활용하면 시스템에 약간의 불안감을 심어줄 수도 있습니다. 다른 사용자가 동작 중인 쉘에 접근한다 치면, 접근한 당사자는 암호 없이 모든 서버에 로그인할 수 있습니다. 결과적으로 서버에 치명적이며, 사용자는 로컬 보안 정책(이 있다면)을 다시금 고려해야합니다. 모든 세션에 대한 보안을 처리할 때 적절한 기준을 취하십시오.

문제 해결
대부분 제대로 동작해야겠지만, 문제가 일어났다면 다음 항목의 충고를 참고해보시는게 좋을 것 같습니다.


 * If connecting without does not seem to work, consider using ssh with the   options to find out what's happening. Sometimes the server is not configured to use public key authentication, sometimes it is configured to ask for local passwords anyway! If that is the case, try using the   option with, or change the server's.
 * If connecting with or  does not seem to work, then it may be that the current shell does not understand the commands used. Consult the man pages for ssh-agent and keychain for details on working with other shells.

외부 자료

 * The official Keychain project page at Funtoo.org.
 * IBM developerWorks article series introducing the concepts behind Keychain.