이 질문을 읽었습니다.
다음 명령은 답변 및 솔루션에 나타납니다(데모용으로 여기에서 조정됨).
ssh-keyscan 192.168.1.X | ssh-keygen -lf -
public keys
Isolate의 첫 번째 명령이 호스트를 표시한다는 것을 알고 있습니다 . 전체 명령(즉, 두 부분 모두)을 실행할 때 최종 출력을 기반으로 첫 번째 명령의 공개 키를 사용하여 생성합니다.지문그들 자신.
질문
- 명령에서 어떻게
-
작동 합니까ssh-keygen -lf -
?
이는 필수입니다. 난 l
그게 쇼용이라는 걸 알아요지문파일 이름을 정의 하지만 f
어떻게 해석합니까 -
?
답변1
기본적으로 ssh-keygen -l
지문을 생성하려는 공개 키 파일을 대화형으로 묻는 메시지가 표시됩니다. -f
기존 파일의 경로 이름을 지정할 수 있습니다 .
경로 이름이 -
(대시)인 경우 파일이 아닌 표준 입력에서 입력을 읽습니다.
이는 다른 많은 명령, 특히 표준 입력에서 읽기가 cat
뒤 따르는 일반적인 관행입니다.cat -
파이프라인에서 표준 입력의 데이터는 명령을 통해 제공됩니다 ssh-keyscan
. 이 ssh-keyscan
명령은 위 호스트의 공개 키를 추출하여 에 전달합니다 ssh-keygen -l
. ssh-keygen
유틸리티는 지문을 출력합니다.
아니요 -f -
, 유틸리티는 출력을 파일 이름으로 사용하여 키 읽기를 ssh-keygen
시도합니다 .ssh-keyscan
프로그램의 입력이 터미널에서 오는지 아니면 터미널 외부의 것(예: 다른 명령이나 파일)에서 오는지 프로그래밍 방식으로 쉽게 판단할 수 있기 때문에 이는 잘못된 설계라고 할 수 있습니다. 그래서 어떤 의미에서는,-f -
할 수 있다불필요해집니다.