ssh-copy-id를 실행 취소하는 방법?


15

2 노드 hadoop 클러스터가 있습니다.

마스터 에서이 명령을 실행했습니다.

$ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@192.168.1.1

어떻게 취소 할 수 있습니까? 실제로 키를 다시 할당하고 싶습니다.

192.168.1.1 노예입니다.

답변:


20

실행할 때 복사 한 공개 키를 식별하십시오 ssh-copy-id.

cat ~/.ssh/id_rsa.pub

키를 복사 한 서버에 대한 SSH :

ssh hadoop@192.168.1.1

선호하는 편집기 ~hadoop/.ssh/authorized_keys192.168.1.1사용하여 파일 을 편집하고 키가 포함 된 줄을 삭제하십시오.


1
왜 더 자동으로 수행 할 수 있습니까? 처럼ssh-rm-id hadoop@192.168.1.1
SR

@SR 나는 이것을 자동화하는 단일 명령을 모른다. 이론적으로, 줄 을 편집 하고 제거 ssh하는 sed명령 (또는 이와 유사한)을 실행하는 데 사용되는 작은 하나의 라이너로 직접 "자동화"할 수 ~/.ssh/authorized_keys있습니다. superuser.com/questions/429954/…
David Edwards

4

당신이 ssh-copy-id같은 짓을 한 경우 :

remote='user@machine'
ssh-copy-id -i $remote

비밀번호를 사용하지 않고이 원격 시스템에 액세스 할 수 있습니다.

ssh $remote

묵시적인 방식으로 실행 취소하려면 다음과 같은 스크립트를 작성하면됩니다.

idssh=$(awk '{print $2}' ~/.ssh/id_rsa.pub)
ssh $remote "sed -i '#$idssh#d' .ssh/authorized_keys"

scp여러 파일이 필요한 스크립트에서 사용 하므로 암호를 한 번만 요청합니다.


1
이것은 약간 위험 할 수 있습니다 . 키 의 주석 필드 를 파악하고 있습니다. 의미가없는 임의의 문자열이며 두 번 이상 포함될 수 있습니다. 긴 AAA....==문자열 (실제 키) 또는의 전체 줄을 grep합니다 id_rsa.pub. 그러나 키 제거를 자동화하는 방법을 보여주는 +1입니다.
PerlDuck

1
@ PerlDuck 당신이 맞아요. 세 번째 필드보다 키 ($ 2) 자체를 사용하는 것이 훨씬 좋습니다. 감사합니다.
Javi M.

@Javi M. 다른 문제가 발생했습니다. sed의 구분 기호로 기본적으로 사용되는 슬래시는 내 공개 키에있었습니다. 결과적으로 공개 키에 표시되지 않을 것이므로 세미콜론을 sed 구분 기호로 사용하는 것이 가장 좋습니다. 이렇게하려면 먼저 캐릭터를 탈출해야했습니다. 나는 다음과 같이 끝났다 :ssh $remote "sed -i '\;$idssh;{d}' .ssh/authorized_keys"
ccalvert

다음 은 공개 키로 끝나는 문자에 대한 정보입니다.
ccalvert

감사합니다 @ccalvert. 제안한 의견을 바탕으로 chris-maes edition
Javi M.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.