Вставленный вами вывод ssh -v предполагает, что он пытался использовать ключ, но это не сработало, поэтому он перешел к интерактивной клавиатуре.
Вы проверили журнал аутентификации на сервере, к которому вы подключаетесь? (например, /var/log/auth.log). Если ваша установка на удаленном конце неверна, например неправильные разрешения, то ssh -v (или -vv или -vvv) не сообщит вам об этом, но это будет зарегистрировано sshd.
Your private key was most certainly not accepted, it was only attempted. There are a number of ways SSH key based authentication can fail, and the logging is not really that great so debugging this particular problem is one of my personal pet peeves. I've found that the error is usually a result of one of the following situations.
~/.ssh/authorized_keys
file is too open. For your own protection sshd
attempts to protect you from yourself. If the permissions on your authorized keys file then it will fail the authentication. Run chmod -R go-rwx ~/.ssh
.~/.ssh/authorized_keys
is malformed. This could be a result of any number of problems, but the most common is a copy paste issue. Some terminals, when copy/pasting across screens, will interpret a line wrap as a new line. Each entry in the authorized_keys
file must be a single line. You can check this by changing the size of your terminal emulator and seeing if there's a break, comparing the output of wc -l ~/.ssh/authorized_keys
against the number of keys that should be in there, or whatever works best for you. Just make sure each key is one line and you should be fine. Если у вас есть доступ к серверу (напрямую или через другой логин), проверьте логи сервера (скажем) / var / log / sshd
или / var / log / secure
в зависимости от вашей системы
Обычно это вызвано ошибкой прав доступа в вашем файле ~ / .ssh / authorized_keys
. Убедитесь, что это не читается всем,
В моем случае файл /var/log/authlog
показал:
[ID 800047 auth.info] Authentication refused: bad ownership or modes for directory
Я проверил правильность владения/разрешений в .ssh
, но $HOME
имел 777 разрешений.
Установка 755 разрешений на $HOME
позволила sftp работать. Еще раз спасибо.
Разрешения ~/. ssh/authorized_keys
на удаленном компьютере важен (600
для моих систем RHEL и Solaris)
Разрешения вашего домашнего каталога на удаленном компьютере важны (700
на моих системах)
В конце концов, запуск sshd
на удаленной машине в режиме отладки на другом порту может быть полезен:
sudo /usr/sbin/sshd -p 5555 -dd
5555
примерный порт, его можно изменить. Дополнительную информацию по этому поводу вы можете посмотреть: http://ubuntuforums.org/archive/index.php/t-2219973.html
Я обнаружил, что есть проблема, если я использую службу sshd
. Чтобы избежать этой проблемы, остановите службу sshd
с помощью sshd-стопа
, а затем запустите демон sshd
из командной строки с помощью sudo /usr/sbin/sshd
.