Keychain/ko

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

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

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

키 쌍 만들기
첫번째 절차에서는 키 쌍을 만듭니다. 이 절차를 수행하려면 명령을 활용합니다:

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

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

서버 준비
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.

의 암호를 물어보고 에게 서버의  사용자 접속을 서용합니다. 만약 허용하지 않았다면  사용자로 로그인하고  내용의 각 한 줄 한 줄마다 올바른 항목(공용 키)을 지니고 있는지 검증합니다. 가능하다면 공용키 인증을 허용했는지 sshd 설정을 확인하는 것이 좋습니다.

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

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를 그만두(고 나중에 암호를 다시 요구하게 하)려면:

에서 더 많은 편의성을 취하려 한다면, 다음 장에서 키 모음 활용 절차를 진행하십시오. 를 키 모음과 함께 실행하고 세션 자체에서 강제 종료를 하는지 확인하십시오.

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

성공했다면, 이제 을 사용할 수 있습니다. 활성화하려면 다음 파일처럼 추가하십시오:

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

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

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

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

Using keychain with Plasma 5
As above for KDE 4 except replace with.

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

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


 * 없이 연결이 안되는 것 같다면, 어떤 문제가 있는지  옵션으로 ssh를 사용해보고 문제를 찾아보십시오. 공용키 인증을 사용하지 않도록 서버를 설정하지 않았을 수도 있고 로컬 암호 조차도 물어보지 않도록 설정했을 수도 있습니다! 이런 경우  명령에   옵션을 붙여보시든지 서버의  설정 파일 내용을 바꿔보십시오.
 * 또는 이 동작하지 않는 것 같다면, 현재 사용하는 쉘에서 사용하는 명령을 이해하지 못할 수도 있습니다. ssh-agent와 키 모음에 대한 맨 페이지를 자세히 살펴보셔서 다른 쉘에서 동작하게 하는 방법을 알아보십시오.

외부 자료

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