Na página de informações, o zsh usa uma tabela de hash para armazenar os caminhos para executáveis. Eu estou supondo que você fez as coisas nesta ordem.
- Sessão zsh iniciada
- Executou o ssh padrão, isso armazenaria o caminho na tabela de hash.
- Script de wrapper criado.
- Ran ssh, isso pega o caminho errado (desatualizado) da tabela de hash.
- Ran
which ssh
, isso apenas verifica o PATH, não a tabela hash do zsh.
A página de informações do zsh sugere que hash -r
limpará a tabela de hash, após o que a tabela de hash será reconstruída, o que deve pegar o seu script de wrapper.
Quando você começou o bash, ele não compartilhou o hash interno de caminhos zsh, então ele apenas começou a procurar no PATH para encontrar coisas.