Nếu bạn muốn bắt đầu một ứng dụng khách ssh, bạn có thể làm điều này trong bash:
#files are .ssh/config and ~/.ssh/foo.config
alias ssh='ssh -F <(cat .ssh/config ~/.ssh/foo.config)'
sau đó bạn sử dụng ssh bình thường và nó sẽ có cả hai tệp được đọc theo thứ tự đó.
Đối với daemon máy chủ, sshd
bạn có thể làm tương tự, chỉ cần sử dụng -f
thay vì -F
và viết nó xuống nơi bạn khởi động daemon trực tiếp. bạn không cần bí danh.
Khả năng thứ hai theo trang man là đưa cấu hình toàn hệ thống vào /etc/ssh/ssh_config
và người dùng vào ~/.ssh/config
.
Cập nhật Rõ ràng có một số vấn đề với một số phiên bản bash và cách các thiết bị được tạo. (xem http://bugs.alpinelinux.org/issues/1465 )
Đây là một cách giải quyết (mặc dù theo tôi là xấu xí):
mkfifo /tmp/ssh_fifo
cat ~/.ssh/config ~/.ssh/foo.config >/tmp/ssh_fifo &
ssh -F /tmp/ssh_fifo myserver
rm /tmp/ssh_fifo
vì vậy nếu bạn muốn, bạn có thể tạo một hàm từ nó (hoặc một tập lệnh):
ssh() {
tmp_fifo=$(mktemp -u --suffix=_ssh_fifo)
mkfifo "$tmp_fifo"
cat ~/.ssh/config ~/.ssh/foo.config >"$tmp_fifo" 2>/dev/null &
/usr/bin/ssh -F "$tmp_fifo" "$@"
rm "$tmp_fifo"
}