Để bật tự động hoàn thành ssh trong Debian và Ubuntu:
sudo apt-get install bash-completion
Lưu ý rằng điều này hoàn toàn không liên quan gì đến băm đã biết_hosts, trái với những gì đã nêu ở trên và câu hỏi ban đầu. Nếu bạn muốn tự động hoàn tất từ know_host, thì tất nhiên bạn sẽ phải vô hiệu hóa băm, nhưng điều đó được khuyến khích mạnh mẽ chống lại.
Ví dụ: tôi có:
Host *
HashKnownHosts yes
trong .ssh / config của tôi và tôi vẫn có ssh tự động hoàn thành hoạt động tốt đối với các máy chủ được liệt kê trong .ssh / config và / etc / hosts. Bạn cần thêm máy chủ vào .ssh / config như OP đã nêu:
Lưu trữ tên máy chủ tuyệt vời của tôi Tên máy chủ the.real.host.name
(Hoặc, bạn có thể thêm mục nhập máy chủ vào / etc / hosts, đây là một nguồn khác cho tập lệnh Debian / Ubuntu.)
Sau đó, bạn có thể chỉ cần gõ ssh my-awe<tab>
và nó sẽ được tự động hoàn thành. Một lần nữa, điều này là ngay cả khi bạn HashKnownhosts, rất được khuyến khích. (Lưu ý rằng việc hoàn thành bash cần được kích hoạt trong bash shell của bạn và bạn cần cài đặt cụ thể các tập lệnh như trên để phân phối.)
Sau đó, thêm các dòng này vào .bashrc
để kích hoạt nó (yêu cầu đăng xuất và đăng nhập lại hoặc chỉ cần bash
nhập mới để khởi chạy shell mới. (Bạn không cần bật nếu nó đã được bật /etc/bash.bashrc
và /etc/profile
nguồn /etc/bash.bashrc
).
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Điều này sẽ cho phép tự động gõ ssh (trong số những thứ khác!) Từ ~/.ssh/config
, /etc/hosts
vv
Lưu ý rằng Debian mặc định là tro thay vì bash. Bạn có thể chuyển sang bash dễ dàng:
sudo usermod -s /bin/bash "$USER"
(Bạn sẽ cần phải đăng xuất và đăng nhập lại để việc này có hiệu lực.)