У меня есть 2 узла Hadoop кластера.
Я выполнил эту команду на мастере:
$ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@192.168.1.1
Как я могу отменить это? Я бы на самом деле хотел переназначить ключ.
192.168.1.1
это раб.
У меня есть 2 узла Hadoop кластера.
Я выполнил эту команду на мастере:
$ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@192.168.1.1
Как я могу отменить это? Я бы на самом деле хотел переназначить ключ.
192.168.1.1
это раб.
Ответы:
Определите открытый ключ, который вы скопировали при запуске ssh-copy-id
:
cat ~/.ssh/id_rsa.pub
SSH на сервер, на который вы скопировали ключ:
ssh hadoop@192.168.1.1
Отредактируйте файл ~hadoop/.ssh/authorized_keys
на с 192.168.1.1
помощью текстового редактора и удалите строку , содержащую ключ.
ssh
запустить sed
команду (или аналогичный) для редактирования ~/.ssh/authorized_keys
и удаления строки. См. Superuser.com/questions/429954/…
Если вы сделали 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
несколько файлов, поэтому я спрашиваю только один раз пароль.
AAA....==
строки (фактический ключ) или для полной строки из id_rsa.pub
. Но +1 за показ того, как автоматизировать удаление ключа.
ssh $remote "sed -i '\;$idssh;{d}' .ssh/authorized_keys"
ssh-rm-id hadoop@192.168.1.1