ssh-keyscan là một tiện ích dòng lệnh trong Unix/Linux, được sử dụng để tạo ra các khóa SSH hostkey và ghi chúng vào file known_hosts. Nó được sử dụng khi bạn cần kết nối đến một máy chủ SSH lần đầu tiên. Trong quá trình kết nối, SSH client sẽ yêu cầu bạn xác thực và xác nhận khóa của máy chủ trước khi cho phép kết nối. Nếu bạn không xác thực khóa của máy chủ này trước đó, bạn sẽ cần sử dụng ssh-keyscan để tạo khóa mới và ghi chúng vào known_hosts, giúp xác thực máy chủ một cách an toàn khi kết nối.
- Mở terminal và truy cập vào máy tính của bạn.
- Chạy lệnh ssh-keyscan để lấy vân tay của máy chủ đích:
ssh-keyscan <remote_host>Ví dụ:
ssh-keyscan 192.168.1.100Sao chép đầu ra vào file known_hosts:
ssh-keyscan <remote_host> >> ~/.ssh/known_hostsVí dụ:
ssh-keyscan 192.168.1.100 >> ~/.ssh/known_hostsLưu ý: Thay thế <remote_host> bằng địa chỉ IP hoặc tên máy chủ của máy chủ đích của bạn.
Bạn có thể sử dụng module command của Ansible để chạy lệnh ssh-keyscan 192.168.1.100 tại máy local của Ansible như sau:
- name: Get SSH host key for 192.168.1.100
command: ssh-keyscan 192.168.1.100
register: ssh_host_key
- name: Print SSH host key
debug:
var: ssh_host_key.stdout_linesTrong đó, task đầu tiên sử dụng module command để chạy lệnh ssh-keyscan 192.168.1.100 và lưu kết quả vào biến ssh_host_key. Task thứ hai sử dụng module debug để in ra nội dung của biến ssh_host_key.stdout_lines.
Hoặc:
- name: Run a command on the local machine
local_action:
module: shell
cmd: ssh-keyscan {{ ansible_host }}