Change default shell when user not in /etc/passwd
Here is a hint : /usr/bin/chsh.ldap: "/usr/bin/fish" is an invalid shell
.
It seems that you should add /usr/bin/fish
to /etc/shells
.
Hold on, it's an LDAP user, there is a setting in LDAP that allows you to change the default shell for the user in them.
You can install ldap-account-manager which gives you an webfrontent for the ldap configuration.
apt install ldap-account-manager
This can be done on any server which you want to handle the configuration on. Since you will need to configure the server in the config files anyway. But I would recommend you install it on the server which has the ldap actually running, just so you can remember it easier.