Tôi có một cụm hadoop 2 nút.
Tôi đã chạy lệnh này trên bản gốc:
$ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@192.168.1.1
Làm thế nào tôi có thể hoàn tác điều này? Tôi thực sự muốn gán lại chìa khóa.
192.168.1.1
là nô lệ.
Tôi có một cụm hadoop 2 nút.
Tôi đã chạy lệnh này trên bản gốc:
$ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@192.168.1.1
Làm thế nào tôi có thể hoàn tác điều này? Tôi thực sự muốn gán lại chìa khóa.
192.168.1.1
là nô lệ.
Câu trả lời:
Xác định khóa công khai mà bạn đã sao chép khi chạy ssh-copy-id
:
cat ~/.ssh/id_rsa.pub
SSH đến máy chủ mà bạn đã sao chép khóa vào:
ssh hadoop@192.168.1.1
Chỉnh sửa các tập tin ~hadoop/.ssh/authorized_keys
trên 192.168.1.1
sử dụng biên tập ưa thích của bạn, và xóa các dòng có chứa chìa khóa của bạn.
ssh
một sed
lệnh (hoặc tương tự) để chỉnh sửa ~/.ssh/authorized_keys
và xóa dòng. Xem superuser.com/questions/429954/ trộm
Nếu bạn đã làm ssh-copy-id
như thế:
remote='user@machine'
ssh-copy-id -i $remote
Vì vậy, bạn có thể truy cập vào máy từ xa này mà không cần sử dụng mật khẩu:
ssh $remote
Để hoàn tác nó theo cách thức, bạn có thể viết kịch bản như:
idssh=`cat ~/.ssh/id_rsa.pub | awk '{print $2}'`
ssh $remote "sed -i '/$idssh/{d}' .ssh/authorized_keys"
Tôi sử dụng nó trong các tập lệnh tôi cần đến scp
một số tập tin, vì vậy tôi chỉ yêu cầu một lần cho mật khẩu.
AAA....==
chuỗi dài (khóa thực tế) hoặc cho dòng hoàn chỉnh từ id_rsa.pub
. Nhưng +1 để hiển thị cách tự động loại bỏ khóa.
ssh $remote "sed -i '\;$idssh;{d}' .ssh/authorized_keys"
ssh-rm-id hadoop@192.168.1.1