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.100
Sao chép đầu ra vào file known_hosts:
ssh-keyscan <remote_host> >> ~/.ssh/known_hosts
Ví dụ:
ssh-keyscan 192.168.1.100 >> ~/.ssh/known_hosts
Lư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_lines
Trong đó, 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 }}