cat [file..]은 다른 cat 명령을 파이프합니다.

cat [file..]은 다른 cat 명령을 파이프합니다.
cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"

누군가 인용문이 어떻게 작동하는지 설명해 줄 수 있나요?

내가 아는 한. 디스크에서 공개 키를 읽은 다음 이를 서버로 연결하고 디렉토리가 존재하지 않으면 디렉토리를 생성한 다음... 두 번째 연결을 사용하여 디스크에서 읽습니까? 무엇이 연결되어 있나요?

cat 명령 다음에 파일을 보는 데 익숙하기 때문에 혼란스러워집니다.

답변1

이 명령은 cat파일을 연결하여 표준 출력으로 인쇄합니다.
파일을 지정하지 않거나 사용하지 않고 호출하면 -표준 입력을 읽습니다.
귀하의 명령에서는 두 가지 방법으로 사용됩니다.

단계별:

  • 명령의 첫 번째 부분( cat ~/.ssh/id_rsa.pub)은 여러분이 이해하는 것과 정확히 일치합니다. 즉, 로컬 파일을 ~/.ssh/id_rsa.pub표준 출력으로 인쇄합니다.
  • 그런 다음 이 기호는 |로컬 표준 출력을 ssh다음 명령의 표준 입력( )으로 리디렉션하는 데 사용됩니다.
  • ssh명령은 실제로 표준 입력을 파이핑하여 문자열 내의 명령이 ""원격 시스템에서 실행되도록 합니다.
  • 문자열 내부:
    • 디렉터리를 생성하게 되며 ~/.ssh이 옵션으로 인해 -p해당 디렉터리만 존재하는 경우 오류가 생성되지 않습니다.
    • 이 연산자를 사용하면 &&이전 작업이 오류 없이 종료된 경우에만 다음 작업을 수행하게 됩니다.catmkdir
    • 마지막은 cat >> ~/.ssh/authorized_keys 전화해서cat 파일 없음. ~/.ssh/authorized_keys리디렉션 연산자( )로 인해 해당 출력이 (가능한 경우) 파일에 추가됩니다 >>.

노트:

  • ssh-copy-id많은 시스템에는 로컬 키를 원격 시스템에 복사하는 명령이 있습니다. 더 많은 정보를 원하시면 입력해주세요man ssh-copy-id

    ssh-copy-id — 로컬에서 사용 가능한 키를 사용하여 원격 시스템에서 로그인을 인증합니다.

  • 댓글에서 royalma가 언급했듯이 원시 명령줄은 ssh구성된 (제한적인) 설정에 따라 작동할 수도 있고 작동하지 않을 수도 있습니다.

관련 정보