У мене є 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