놀랍게도 ssh-copy-id
키의 개인 부분이 없으면 이것이 실패하여 다른 키를 배포하는 데 사용할 수 없다는 것을 발견했습니다.
저는 이러한 키를 배포하는 안정적인 방법을 찾고 있으므로 두 번 실행해도 중복 항목이 생성되지 않아야 합니다.
답변1
이것을 시도해 보십시오(개행은 선택 사항):
cat ~/.ssh/id_rsa.pub |
ssh <REMOTE> "cat > tmp.pubkey ;
mkdir -p .ssh ;
touch .ssh/authorized_keys ;
sed -i.bak -e '/$(awk '{print $NF}' ~/.ssh/id_rsa.pub)/d' .ssh/authorized_keys;
cat tmp.pubkey >>.ssh/authorized_keys;
rm tmp.pubkey"
<REMOTE>
연결하려는 호스트 이름으로 바꾸십시오 . 또한 id_rsa.pub
이름을 바 키로 변경하세요.
이 접근 방식이 적용되는 사례는 다음과 같습니다.
- 원격 호스트에
.ssh
디렉터리가 없을 수 있습니다. authorized_keys
파일이 존재하지 않을 수 있습니다.- 존재하는 경우
authorized_keys
SSH 공개 키를 교체/업데이트/추가하려는 경우 중복 항목 없이 작동합니다. 동일한 설명이 포함된 항목이 이미 존재하는 경우 이 스크립트가 해당 항목을 대체합니다.