SSH 서버 지문은 어디에 생성 / 저장됩니까?


44

openssh-server를 설치하고로 키를 만들었습니다 ssh-keygen. 그런 다음을 수행하여 로컬 포트 ​​전달을 사용하여 테스트하려고했습니다 ssh -L 8080:www.nytimes.com:80 127.0.0.1. 그러나이 명령이 제공하는 주요 지문은 내가 할 때 얻는 주요 지문이 아닙니다 ssh-keygen -l. .ssh 디렉토리를 삭제하더라도 여전히 같은 지문을 얻습니다 ssh-keygen. 내 시스템에 다른 키가 있습니까? 이 열쇠는 어디에 있습니까? openssh-server에서이 키를 선택하려면 어떻게해야합니까?

답변:


58

SSH 세션을 만들 때 두 개의 서로 다른 키 페어 (각 페어에 대한 지문 포함)가 관련됩니다. 하나는에 저장된 사용자의 키입니다 ~/.ssh. 사용자의 SSH 키 ID는 때때로 다른 컴퓨터에 로그인하기위한 자격 증명으로 사용됩니다 (키 기반 로그인을 설정 한 경우).

다른 하나는 SSH 서버의 키입니다. 다른 서버에 처음 연결할 때 지문이 표시되는 키입니다. 이 키의 ID는 원하는 SSH 서버에 로그인하는 데 사용됩니다. 실수로 공격자 컴퓨터에 로그인하지 않으려는 경우 암호를 사용하는 경우 중요합니다. 침입자는 암호를 입력 할 때 암호를 얻습니다. 그러면 공격자가 로그인 한 컴퓨터에 로그인 할 수 있습니다 에! (이것은 "중간 공격의 사람" 으로 알려져 있습니다. ) SSH 서버가 로그인 할 때 자신을 식별하기 위해 SSH 서버가 사용하는 키는 /etc/ssh/일반적으로와 같은 이름을 갖습니다 ssh_host_rsa_key.

설정을 사용하여 SSH 서버가 파일 에서 키를 찾는 위치를 실제로 변경할 수 있습니다 ./etc/ssh/sshd_configHostKey /path/to/host/key

기본적으로 ssh-keygen현재 사용자의 키가 생성되며 기본적으로이 키는에 저장됩니다 ~/.ssh. 사용자 키와 서버 키의 형식은 동일합니다. 가 배치되는 위치의 차이는 여부는 /etc/ssh/sshd_configHostKey그들에게 지시를 가리키는. openssh-server 패키지를 설치하면 서버에서 사용할 키가 자동으로 생성됩니다. 그것은 알려지지 않은 지문을 가진 키가 나온 곳입니다. SSH 서버 (RSA *) 키의 지문을 보려면을 실행할 수 있습니다 ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub.

* 다른 암호화 알고리즘이 있습니다. 각각 다른 키를 사용합니다. 일반적인 것은 DSA (약한), RSA (이전 기본값) 및 ECDSA (새로운 기본값)입니다.


1
"ssh 지문 설정"에 대한 Google 검색 결과는 기술적으로 잘못되었지만 놀랍도록 나쁩니다. 나는 그들 중에서 이것을 발견했다.
바트 반 Heukelom

4
고마워 참고 사항 : 공개 키를 ssh-keygen으로 지정하면 'sudo'가 필요하지 않습니다. 즉 : ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub. 또한 설치를 위해 ssh 데몬이 사용하고있는 것은 RSA 키가 아닌 ECDSA 키 였으므로 실제로 실행해야했습니다 ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub.
존 클레멘트

이전 하드 드라이브에서 공개 키를 가져 와서 새 설치에 사용하여 / etc / ssh에서 덮어 쓰는 데 문제가 있습니까? 열쇠는 열쇠입니다.
Adam

@ 아담 나는 그 일에 아무런 문제가 없다고 생각합니다. 원격 로그인 가서 키가 변경되었을 때 즉 피하고 문제를 도움이 될 것입니다 (이 경우 새 키가 생성됩니다 다시 설치 발생한다.)
Azendale

3
ssh14.04부터 호스트에 처음 연결하면 MD5 지문이 표시됩니다. 하려면 ssh-keygen16.04 쇼 MD5 지문, 당신은 사용해야합니다 -E md5옵션을 선택합니다.
jarno

14

SSH 호스트 키는에 저장되므로 /etc/ssh/일반적으로 선택할 필요가 없습니다. 이 키는 openssh-server 패키지가 설치 될 때 생성되었습니다.

ssh-keygen -l -f /etc/ssh/ssh_host_key.pub각 공개 키에 대해이 단계를 반복해야하지만 키의 지문을 나열 할 수 있습니다 .

 


7

ssh-keygen서버에서 SSH 지문을 생성하지 않습니다. 이것은 SSH 서버에 의해 생성됩니다. ssh-keygen시스템에 공개 / 개인 키 쌍을 생성하여 나중에 일반 텍스트 암호를 서버에 전송하지 않고도 SSH 서버에 액세스 할 수 있습니다.

서버의 지문은 생성 된 공개 / 개인 키 쌍의 지문으로 구분되지 않습니다.


3
서버에 대해 ssh 키를 생성 할 수 있어야하지만 (말한 것과 달리) 해당 용도로 사용되도록 올바른 위치에 키를 배치해야합니다.
Azendale
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.