스크립트를 찾으려고 노력 중이에요암호 해독(해시되지 않음) Known_hosts 파일의 SSH 호스트 이름호스트 이름 목록을 전달하여.
그러니정확히 반대:
ssh-keygen -H -f known_hosts
또는 SSH 구성 HashKnownHosts가 아니요로 설정된 경우 다음과 동일한 작업을 수행합니다.
ssh-keygen -R know-host.com -f known_hosts
ssh-keyscan -H know-host.com >> known_hosts
하지만 호스트 키를 다시 다운로드할 필요는 없습니다(ssh-keyscan으로 인해).
그것은 다음과 같습니다:
ssh-keygen --decrypt -f known_hosts --hostnames hostnames.txt
여기서 hostnames.txt에는 호스트 이름 목록이 포함되어 있습니다.
답변1
의 행은 known_hosts
암호화되지 않고 해시됩니다. 암호화되어 있지 않기 때문에 해독할 수 없습니다. 당신은 그것들을 "해시 해제"할 수 없습니다.해시시그게 전부입니다. 해시가 주어지면 원래 문자열을 찾는 것은 불가능합니다. "해시를 해제"하는 유일한 방법은 원래 문자열을 추측하고 추측을 확인하는 것입니다.
호스트 이름 목록이 있는 경우 이를 전달 ssh-keygen -F
하고 호스트 이름으로 바꿀 수 있습니다.
while read host comment; do
found=$(ssh-keygen -F "$host" | grep -v '^#' | sed "s/^[^ ]*/$host/")
if [ -n "$found" ]; then
ssh-keygen -R "$host"
echo "$found" >>~/.ssh/known_hosts
fi
done <hostnames.txt
1 실용적인 의미에서 오늘날 존재하는 모든 컴퓨터는 이 작업을 완료하는 데 현재 우주 시대보다 더 오랜 시간이 걸릴 것입니다.
답변2
ssh-keygen(1) 매뉴얼 페이지는 이 -F hostname
옵션을 보여줍니다:
Known_hosts 파일에서 지정된 호스트 이름을 검색하여 발견된 일치 항목을 나열합니다. 이 옵션은 해시된 호스트 이름이나 주소를 찾는 데 유용하며,
-H
발견된 키를 해시 형식으로 인쇄하는 옵션과 함께 사용할 수도 있습니다.
이것이 당신이 원하는 것 같습니다.
답변3
나는 이 새로운 암호화된 파일이 단순히 알려진 호스트를 관리한다는 것을 발견했습니다. 텍스트를 복사하여 다른 위치에 붙여넣고 암호화된 Known_hosts 줄 위에 IP 및 장치에 대한 설명을 추가합니다. 암호를 해독하려고 해도 필요한 정보를 얻을 수 없습니다.