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_keystrên 192.168.1.1sử 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.
sshmột sedlệnh (hoặc tương tự) để chỉnh sửa ~/.ssh/authorized_keysvà xóa dòng. Xem superuser.com/questions/429954/ trộm
Nếu bạn đã làm ssh-copy-idnhư 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 scpmộ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