Этот вопрос похож, но у меня обратный сценарий. SFTP работает, но я еще не подключился с помощью SSH.
Я использую config
файл и могу sftp на удаленный сервер.
Локальная машина находится на linux, а удаленный сервер - CentOS.
sftp foobar_remote
config
Host foobar_remote
HostName foobar.biz
Port 2222
User bizz
IdentityFile local/bizzbuzz/id_rsa
На локальной машине я нахожусь в том же каталоге, что и id_rsa
ssh -i id_rsa bizz@foobar.biz
Мне все еще предлагается ввести bizz@foobar.biz пароль.
После ответа на комментарии
Теперь я использую другой ключ (id_rsa), и мне больше не предлагается ввести пароль. Теперь я получаю следующий ответ
Welcome to foobar.biz
shell request failed on chananel 0
sftp
и ssh
соединяются с тем же sshd
. Если вы можете соединить с одним, вы можете с другим. Разница в том, что вызывает программа sshd
, sftp-server(8) или вашу оболочку входа.
Я подозреваю, что ваша оболочка входа не установлена или не разрешена на удаленной машине. Запрос оболочки failed звучит так же, как execvp(shell, args)
вернул ошибку.
Чтобы протестировать, попробуйте явно выполнить вызов другого известного исполняемого файла и оболочки,
$ ssh remote /bin/date
$ ssh remote /usr/bin/bash # or whatever
Если один из них работает, а другой выходит из строя, вы изолировали свою проблему.