UNIX에서 개인 / 공용 SSH 키는 어디에 있습니까?


17

RSA 및 공개 / 개인 키 시스템의 작동 방식을 이해하기 시작했으며 개인 및 공개 SSH 키가 어디에 저장되어 있는지 궁금했습니다. 홈 디렉토리로 이동하여 .ssh 디렉토리 (cd .ssh)를 찾아 보면 "known_hosts"파일 만 볼 수 있습니다.이 파일에는 내가 알고있는 다른 원격 SSH 서버의 공개 키가 포함되어있는 것 같습니다.

이 열쇠는 어디서 찾을 수 있습니까? 나는 그것들을 만드는 것을 기억조차하지 않지만, 전에 이미 ssh 연결을 설정했기 때문에 어딘가에 있어야합니다.

MAC OS 10.6에서 OpenSSH_5.2p1을 사용하고 있습니다.

감사!

답변:


15

~/.ssh/id_rsa그리고 ~/id_rsa.pub보통. 그러나 ssh는 쌍을 생성하여 저장해야한다는 것을 따르지 않습니다. ssh는 기본적으로 SSL 프로토콜을 사용하여 Diffie / Hellman 키 교환 알고리즘 또는 일부 변형을 사용하여 세션 키를 설정합니다 . 즉, 연결을 설정하는 핸드 셰이크는 세션 키를 생성하고 세션이 완료되면 버립니다.

알고리즘을 읽으면 꽤 근사합니다. 상당히 간단한 수학을 사용하면 연결을 통해 키를 보내지 않고도 연결의 양쪽 끝에 알려진 키를 설정합니다.


이는 SSH 키 생성 요청을받지 않은 경우 RSA를 사용한 적이없는 것입니까? 즉, 세션 키를 공유하는 데 일부 비대칭 알고리즘이 사용되었지만 연결을위한 임시 공개 / 개인 키가 내 컴퓨터에 저장되지 않았습니까?

맞습니다. 실제로 암호화는 대칭이므로 비대칭 알고리즘은 스트리밍에 적합하지 않습니다. Diffie-Hellman은 대칭 암호화를위한 세션 키를 생성하는 데 사용됩니다. 공개 / 개인 키 쌍을 대신 사용하는 경우 다른 핸드 셰이크에서 대칭 알고리즘의 세션 키를 만드는 데 사용됩니다.
Charlie Martin

@mieli : 아니요. 처음부터 만들어지지 않았습니다. publickey많은 인증 방법 중 하나 일뿐입니다. 당신은 단순히 사용하여 로그인하는 경우 passwordkeyboard-interactive, 암호 자체가 전송되었습니다. (참고 : 사용자 키, 호스트 키 및 세션 키를 혼동하지 마십시오.)
user1686

@ grawity 우리는 대부분 여기에 동의하지만 조금 조심합시다. Diffie-Hellman 키 교환은 RSA 및 기타 비대칭 암호화 알고리즘과 관련이 있으며 교환의 양쪽에 최종 계약의 "반"이 있기 때문에 본질적으로 비대칭입니다. 그들은 키의 두 부분이 있고, 최종 키를 구축 할 수있는 정확한 과정은 세션의 끝에서 삭제됩니다. 그러나 RSA 쌍의 공개 및 개인 부분은 아닙니다.
Charlie Martin

4

개인 공개 및 개인 ssh 키는 일반적으로 다음 위치에 저장됩니다.

$HOME/.ssh/id_dsa     (private key)
$HOME/.ssh/id_dsa.pub (public key)

아니면이 될 수 id_rsaid_rsa.pub오히려 DSA 키보다 RSA 키를 만든 경우 (OpenSSH의 두 형태를 지원합니다).

그러나 이전에 ssh 연결을 설정했다고해서 ssh 키가 있다는 의미는 아닙니다. 은 IF ssh명령은 개인 키를 찾을 수 없습니다, 그것은 원격 시스템에 대한 암호를 입력하라는 메시지가 표시됩니다. 이것은 키를 사용하는 것보다 덜 안전합니다.

일반적으로 암호를 사용하여 ssh 개인 키를 작성해야합니다. 암호없이 만들면 개인 키 사본을받는 사람이 나를 가장 할 수 있습니다. ssh-agent암호를 사용할 때마다 암호를 다시 입력하지 않아도 암호로 키를 사용할 수 있습니다.


2

당신이 키 쌍을 생성하지 않은 경우, 당신은 아마하지 않는 일을.

SSH2 트래픽은 DH, ECDH 알고리즘 또는 GSSAPI 키 교환을 사용하여 설정된 대칭 세션 키로 암호화됩니다 . 호스트 키나 사용자 키는 데이터를 암호화하는 데 사용되지 않습니다 . 유일한 목적은 인증 입니다.

SSH는 여러 가지 인증 방법을 지원 합니다. 또한 publickey거의 모든 서버가 단순 password및 / 또는 keyboard-interactive키 생성이나 사용이 발생하지 않는 단순 서버를 승인합니다 . 확인을 위해 비밀번호가 원격 서버로 전송됩니다.

다시 말해, "이미 ssh 연결을 설정 했으므로 어딘가에 있어야합니다"가 잘못 되었습니다. 연결을 설정하는 데 사용자 키 쌍이 필요하지 않습니다 .


당신이 경우 키 쌍을 생성, 그것은 가능성이있을 것 ~/.ssh/id_*- 예를 들어, id_rsa기본 RSA 키 쌍을위한 id_ecdsaECDSA를 들어, id_dsaDSA합니다. 이러한 파일이 포함되어 있지만 모두 키 쌍의 민간 및 공공 부분을 공공 부분은 일반적으로 자동으로 별도로 추출 id_*.pub편의를 위해 파일 ( id_rsa.pub대한 id_rsa등).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.