Như những người khác đã nhận xét, HashKnownHosts có
đang khiến tên máy chủ không tự động hoàn tất do bị băm. Thêm phần đó vào phần "toàn cầu" bằng cách sử dụng Chủ nhà *
để phù hợp với tất cả các máy chủ.
Chủ nhà *
HashKnownHosts không
Trong khi điều này hoạt động, nó không đáp ứng nhu cầu của tôi vì tôi thích tên ngắn hơn tên dài và ~/.ssh/config
sử dụng Tên máy chủ
để chuyển đổi tên viết tắt thành FQDN. Đây là của tôi cấu hình
.
Chủ nhà *
HashKnownHosts không
Máy chủ ns-*
Tên máy chủ %h.example.com
IdentityFile ~/.ssh/%h
Danh tínhChỉ có
Khi kết nối với ns-máy chủ01
, sau đây được thêm vào known_hosts
.
ns-host01.example.com,192.16.0.104 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOl4AD310E/7OpWInZvotUO1rshKy/PuljvR9nQmamNPlZaXqBneXGaufJ6Oxa74AlxqSg4UV
Nhưng điều đó không giúp ích gì với tính năng tự động hoàn tất để hoàn thành FQDN. Mặc dù tôi có thể thêm tên ngắn theo cách thủ công, nhưng điều đó quá... thủ công. Tôi không thể tìm thấy bất cứ điều gì trực tuyến để thêm đoạn ngắn và tên máy chủ dài với IP đến known_hosts
. Sau đó, tôi RTFM.
-f tập tin
Đọc các cặp máy chủ hoặc âaddrlist namelistâ từ tệp, mỗi cặp trên một dòng. Nếu â-â được cung cấp thay vì tên tệp, ssh-keyscan
sẽ đọc từ đầu vào tiêu chuẩn. Dữ liệu đầu vào được mong đợi ở định dạng:
1.2.3.4,1.2.4.4 tên.tên miền của tôi,tên,n.tên miền của tôi,n,1.2.3.4,1.2.4.4
Với ý nghĩ đó, điều này
echo "192.16.0.104,ns-host01,ns-host01.example.com" | ssh-keyscan -f - -t ecdsa,ed25519
tạo phần sau chứa tên máy chủ và IP ngắn và dài.
192.16.0.104,ns-host01,ns-host01.example.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNF+UEbktGXlyYX/t1hvnIvxa+9fB67q15EjBkZUA2EkkTrcvLwASi6np9gqM5dCSpE0CkLeGP75UMFR8LOAgqM=
# 192.16.0.104:22 SSH-2.0-OpenSSH_8.1
192.16.0.104,ns-host01,ns-host01.example.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMibknxgW6cY7JUsKQEB/i188uS9SLx8JoiMg+YD3n7U
Nối nó vào của bạn known_hosts
và bây giờ tính năng tự động hoàn thành hoạt động như mong đợi, dừng ở tên máy chủ ngắn.