공개 키를 원격 시스템으로 보내기 위해 bash 스크립트에서 다음 cli를 사용했습니다.
sshpass -p $pass scp /root/.ssh/authorized_keys root@$remote_host:~/.ssh/authorized_keys
하지만 우리는 다른 호스트의 공개 키를 첨부하고 싶기 때문에 최상위 첨부 방법을 찾고 있습니다.
Bash에서는 ">>"를 사용하는 옵션이 있다는 것을 알고 있지만 내 방법을 사용하여 어떻게 추가합니까?
아니면 다른 해결책이 있을까요?
답변1
ssh-copy-id
원하는 작업을 정확히 수행하는 도구인 를 사용할 수도 있습니다 . 즉, 원격 시스템의 Authorized_keys에 하나 이상의 키를 추가할 수 있습니다.
답변2
ssh
다음과 함께 사용 tee -a file
:
< /root/.ssh/authorized_keys sshpass -p "$pass" ssh root@"$remote_host" "tee -a ~/.ssh/authorized_keys"
또는 원하는 ssh
경우 :cat >> file
< /root/.ssh/authorized_keys sshpass -p "$pass" ssh root@"$remote_host" "cat >> ~/.ssh/authorized_keys"
tee
둘 다 with cat
로 전송되는 표준 입력에서 읽습니다 . 차이점은 는 추가된 내용을 인쇄 하지 않는다는 것입니다.ssh
< file
tee
>>
참고: 큰따옴표가 필요합니다. 그렇지 않으면 쉘이 명령에 보내기 전에 >>
이를 ~
해석 합니다.ssh