mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2025-12-05 01:46:46 +01:00
fix: merge SSH hosts from .ssh/config with known_hosts
Fixes #2737 - Modified common-aliases plugin to merge hosts from .ssh/config with known_hosts instead of overriding them - This ensures .ssh/config hosts take priority over /etc/hosts entries - Maintains backward compatibility by including both sources - Uses sort -u to remove duplicates while preserving order The issue was that the common-aliases plugin was overriding the SSH plugin's host completion configuration, causing /etc/hosts entries to take priority over .ssh/config entries when completing SSH hostnames. Now both sources are merged, giving users access to all configured hosts while maintaining the expected priority order.
This commit is contained in:
parent
9e23925b85
commit
7df13688df
1 changed files with 2 additions and 1 deletions
|
|
@ -87,4 +87,5 @@ if is-at-least 4.2.0; then
|
|||
fi
|
||||
|
||||
# Make zsh know about hosts already accessed by SSH
|
||||
zstyle -e ':completion:*:(ssh|scp|sftp|rsh|rsync):hosts' hosts 'reply=(${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) /dev/null)"}%%[# ]*}//,/ })'
|
||||
# Merge with existing hosts from .ssh/config instead of overriding
|
||||
zstyle -e ':completion:*:(ssh|scp|sftp|rsh|rsync):hosts' hosts 'reply=(${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) /dev/null)"}%%[# ]*}//,/ } ${(f)"$(cat ~/.ssh/config 2>/dev/null | grep -E "^Host " | awk '"'"'{for (i=2; i<=NF; i++) print $i}'"'"' | grep -v '"'"'^*'"'"' | sed '"'"'s/\.*\*$//'"'"')"} | sort -u)'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue