Я нашел обходной путь для этого, отсюда . Сценарий для предоставления доступных команд Nix поставляется в ~/.profile
. Я думаю, что причина, по которой они недоступны из-за того, nix-copy-closure
что ssh не является источником, ~/.profile
когда команды выполняются неинтерактивно. Добавление
command=". ~/.profile; if [ -n \"$SSH_ORIGINAL_COMMAND\" ]; then eval \"$SSH_ORIGINAL_COMMAND\"; else exec \"$SHELL\"; fi"
прежде чем мой открытый ключ SSH (и в той же строке) ~/.ssh/authorized_keys
на сервере решает проблему для меня.
Я все еще хотел бы знать, почему nix-copy-closure
не обрабатывает это автоматически.