Why my SSH session is different than "normal" direct session?

When I open terminal directly on my host, I see this:
image

When I SSH into this machine, I see this:
image

I also noticed that in my SSH session, I have different envs, for example, I can’t execute the ip command, it is not found.

I use fish shell, the configuration is in config.fish:

set -gx EDITOR vim
set -gx VISUAL vim
set -gx PAGER less
set -gx LESS -eiRMX

set -gx DOCKER_HOST unix:///run/user/1000/podman/podman.sock
# set -gx NVM_LAZY_LOAD true
# set -gx NVM_COMPLETION true
set -gx DOTNET_CLI_TELEMETRY_OPTOUT 1
set -gx FUNCTIONS_CORE_TOOLS_TELEMETRY_OPTOUT 1
set -gx DOTNET_ROOT $HOME/.dotnet

set -U fish_greeting
# set --universal nvm_default_version v18

fish_add_path ~/bin
fish_add_path ~/bin/distrobox
fish_add_path ~/sbin
fish_add_path ~/scripts
fish_add_path ~/opt/homebrew/bin
fish_add_path ~/opt/homebrew/sbin
fish_add_path ~/opt/local/bin
fish_add_path ~/opt/local/sbin
fish_add_path ~/.bun/bin
fish_add_path ~/.local/share/JetBrains/Toolbox/scripts
fish_add_path ~/.dotnet
fish_add_path ~/.dotnet/tools
fish_add_path ~/.cargo/bin

source ~/.asdf/asdf.fish

eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"

jj util completion fish | source


if status is-interactive

end

starship init fish | source

Is there something wrong with it?

Each system has its own environment.
On your main workstation you may be using fish. On the host you connect to with ssh your shell may be bash, or zsh, or ?.

You need to be aware of the shell your user has in that environment (seen with echo $SHELL and the differences between that environment and the one on your main system.

The differences in the prompt you show are the result of the $PS1 variable being different on different systems as well. Each user can (mostly) customize their own prompt, but the system admin would have to change the shell they use on that system.

In the fish config, it seems that your prompt is managed by the Starship prompt, and it does change when connect via SSH.