"ssh-keygen -lf -" 명령의 "-"는 어떻게 작동합니까?

"ssh-keygen -lf -" 명령의 "-"는 어떻게 작동합니까?

이 질문을 읽었습니다.

다음 명령은 답변 및 솔루션에 나타납니다(데모용으로 여기에서 조정됨).

ssh-keyscan 192.168.1.X | ssh-keygen -lf -

public keysIsolate의 첫 번째 명령이 호스트를 표시한다는 것을 알고 있습니다 . 전체 명령(즉, 두 부분 모두)을 실행할 때 최종 출력을 기반으로 첫 번째 명령의 공개 키를 사용하여 생성합니다.지문그들 자신.

질문

  • 명령에서 어떻게 -작동 합니까 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 - 할 수 있다불필요해집니다.

관련 정보