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
해당 디렉터리만 존재하는 경우 오류가 생성되지 않습니다. - 이 연산자를 사용하면
&&
이전 작업이 오류 없이 종료된 경우에만 다음 작업을 수행하게 됩니다.cat
mkdir
- 마지막은
cat >> ~/.ssh/authorized_keys
전화해서cat
파일 없음.~/.ssh/authorized_keys
리디렉션 연산자( )로 인해 해당 출력이 (가능한 경우) 파일에 추가됩니다>>
.
- 디렉터리를 생성하게 되며
노트:
ssh-copy-id
많은 시스템에는 로컬 키를 원격 시스템에 복사하는 명령이 있습니다. 더 많은 정보를 원하시면 입력해주세요man ssh-copy-id
ssh-copy-id — 로컬에서 사용 가능한 키를 사용하여 원격 시스템에서 로그인을 인증합니다.
댓글에서 royalma가 언급했듯이 원시 명령줄은
ssh
구성된 (제한적인) 설정에 따라 작동할 수도 있고 작동하지 않을 수도 있습니다.