
openssh-server를 설치하고 ssh-keygen
. 그런 다음 ssh -L 8080:www.nytimes.com:80 127.0.0.1
. 그러나 이 명령이 제공하는 키 지문은 내가 수행할 때 얻는 키 지문이 아닙니다 ssh-keygen -l
. .ssh 디렉터리를 삭제하더라도 ssh-keygen
. 내 시스템에 다른 키가 있나요? 이 열쇠는 어디에 있나요? openssh-server에서 사용하기 위해 이 키를 어떻게 선택할 수 있습니까?
답변1
SSH 세션을 만들 때 두 개의 서로 다른 키 쌍(각 쌍에 대한 지문 포함)이 관련됩니다. 하나는 에 저장된 사용자 키입니다 ~/.ssh
. 사용자의 SSH 키 ID는 때때로 다른 컴퓨터에 로그인하기 위한 자격 증명으로 사용됩니다(키 기반 로그인을 설정한 경우).
다른 하나는 SSH 서버의 키입니다. 이는 처음으로 다른 서버에 연결할 때 지문으로 확인되는 키입니다. 이 키의 ID는 원하는 SSH 서버에 로그인하고 있는지 확인하는 데 사용됩니다. 실수로 공격자의 컴퓨터에 로그인을 시도하는 것을 원하지 않기 때문에 비밀번호를 사용하는 경우 이는 중요합니다. 공격자는 사용자가 비밀번호를 입력할 때 비밀번호를 알아낼 것입니다. 그런 다음 공격자는 사용자가 로그인한다고 생각한 시스템에 로그인할 수 있습니다. 에게! (이것은 다음과 같이 알려져 있습니다."중간자 공격")SSH 서버가 로그인할 때 자신을 식별하는 데 사용하는 키는 /etc/ssh/
일반적으로 ssh_host_rsa_key
.
설정 을 사용하면 SSH 서버가 파일에서 키를 찾는 위치를 실제로 변경할 수 있습니다 ./etc/ssh/sshd_config
HostKey /path/to/host/key
기본적으로 에서는 ssh-keygen
현재 사용자에 대한 키를 생성하며 기본적으로 에 저장됩니다 ~/.ssh
. 사용자 키와 서버 키의 형식은 동일합니다. 차이점은 배치된 위치와 이를 가리키는 지시문이 /etc/ssh/sshd_config
있는지 여부입니다.HostKey
openssh-server 패키지를 설치하면 서버에서 사용할 키가 자동으로 생성됩니다. 지문을 알 수 없는 열쇠가 나온 곳이 바로 그곳이다.SSH 서버(RSA*) 키의 지문을 보려면 다음을 실행하면 됩니다 ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
.
*다양한 암호화 알고리즘이 있습니다. 각각은 다른 키를 사용합니다. 일반적인 것은 DSA(약함), RSA(이전 기본값) 및 ECDSA(새 기본값)입니다.
답변2
/etc/ssh/
SSH 호스트 키는 일반적으로 선택할 필요가 없는 에 저장됩니다 . 이 키는 openssh-server 패키지가 설치될 때 생성되었습니다.
ssh-keygen -l -f /etc/ssh/ssh_host_key.pub
각 공개 키에 대해 이를 반복해야 하지만 키의 지문을 나열할 수 있습니다 .
답변3
ssh-keygen
서버에서 SSH 지문을 생성하지 않습니다. 이는 SSH 서버에 의해 생성됩니다. ssh-keygen
일반 텍스트 비밀번호를 서버에 전송하지 않고도 나중에 SSH 서버에 액세스하는 데 사용할 수 있는 시스템용 공개/개인 키 쌍을 생성합니다.
서버의 지문은 서로 분리되어 있으므로 생성한 공개/개인 키 쌍의 지문으로 표시되지 않습니다.