Описание

Впервые я столкнулся с этой проблемой, когда попытался использовать SCP на другом компьютере по локальной сети и получить zsh:1: command not found: scp
Теперь, прежде чем кто-нибудь спросит: да, у меня установлен SSH.
Я могу использовать SSH для входа на другой компьютер просто отлично.
Проблема в SCP, и ssh [user@]hostname [command] приводит к zsh:1: command not found: [command] .

тестирование

Я пытался использовать SCP с localhost

systemctl start sshd.service
scp /home/user/asdf.log user@127.0.0.1:/home/user/test/asdf.log
...
zsh:1: command not found: scp

И затем отправив команду:

ssh user@127.0.0.1 ls
...
zsh:1: command not found: ls

ssh user@127.0.0.1 работает как положено.

Я использовал ключ -v , и информация выглядела нормально.
Я попытался перейти на Bash вместо ZSH; та же ошибка.

Наконец, я попытался войти в систему, и это сработало

ssh root@127.0.0.1 ls
...
Desktop
Documents
Music
...

SSH Config:

~/.ssh/config: ничего

#/etc/ssh/sshd_config
PermitRootLogin yes # this is bad; for testing only
AuthorizedKeysFile  .ssh/authorized_keys
ChallengeResponseAuthentication no
UsePAM yes
PrintMotd no #pam does that
Subsystem sftp /usr/lib/ssh/sftp-server

Использование Arch Linux с openssh 7.9p1

TL; DR

Похоже, что среда не устанавливается (даже PATH) для SCP и одиночной команды SSH. Но для входа в систему root он настроен правильно.
Есть идеи по этому поводу?

Обновить

Это что-то с моей конфигурацией оболочки пользователя.
Я добавил новую, пустую учетную запись пользователя, и с помощью SCP все заработало.

1 ответ1

0

Я понял проблему.

В моей ~/.pam_environment была строка, указывающая мой путь.
PATH DEFAULT=${PATH}:/home/@{PAM_USER}/bin
Это по какой-то причине помещает /home /user /bin в мой путь 3 раза и добавляет дополнительное двоеточие.
Почему это так, я не уверен.
Но вместо этого установка моего PATH в ~/.profile проблему.

Я предполагаю, что неверное назначение PATH было отклонено ssh, но не моим обычным логином.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .