따라서 비밀번호 없는 SSH를 활성화하려면 공개 인증 키를 생성하고 이를 원격 호스트의 ~/.ssh/authorized_keys 파일에 추가하여 새 SSH 키 쌍을 생성해야 한다는 것을 알고 있습니다.
문제는 일련의 비밀번호를 갖고 올바른 비밀번호를 찾을 때까지 하나씩 시도해 볼 수 있느냐는 것입니다. 아니면 실제 비밀번호 쌍이 필요합니까?따라서 어떤 호스트가 어떤 비밀번호를 가지고 있는지 알아보세요. 이유: 수천 개의 호스트가 있고 어떤 호스트가 어떤 비밀번호를 가지고 있는지는 모르지만 가능한 모든 비밀번호 목록은 있습니다.
SSH와 병렬로 GNU를 사용하고 싶지만 이를 위해서는 비밀번호 없는 SSH가 필요합니다.
또 다른 옵션은 성공할 때까지 다른 비밀번호를 시도하면서 스크립트를 병렬로 실행하는 것입니다.
답변1
sshpass
이 방법.
신뢰할 수 있는 시스템에서 실행할 수 있습니다(예: 공격자 없음: 다른 사용자가 실행하면 비밀번호가 일반 텍스트로 표시됩니다 ps
).
testone() { sshpass -p "$1" ssh "$2" echo OK; }
export -f testone
parallel --tag -k testone :::: passwords.txt hostlist.txt 2>/dev/null
연속해서 3번 틀리면 일부 시스템에서는 이를 공격으로 간주하여 일정 기간 동안 접속이 차단된다는 점에 유의하세요. 따라서 성공을 추적하고 이를 에서 이동해야 합니다 hostlist.txt
.