Назад | Перейти на главную страницу

sftp и открытые ключи

Я пытаюсь подключиться к серверу, размещенному на другом сервере.

Чтобы убедиться, что это сработало, я сделал стандартный sftp user@sftp.xxxxxx.com Мне предложили пароль, и это сработало.

Я настраиваю сценарий cron для отправки файла один раз в неделю, поэтому дал им наш открытый ключ, который, по их утверждениям, был добавлен в их файл authorized_keys.

Я сейчас пытаюсь sftp user@sftp.xxxxxx.com снова, и мне все еще предлагается ввести пароль, но теперь пароль не работает ...

Connecting to user@sftp.xxxxxx.com...
user@sftp.xxxxxx.com's password: 
Permission denied, please try again.
user@sftp.xxxxxx.com's password: 
Permission denied, please try again.
user@sftp.xxxxxx.com's password: 
Permission denied (publickey,password).
Couldn't read packet: Connection reset by peer

Однако я заметил, что если просто нажать enter (без пароля) он вошел в меня нормально ...

Итак, вот мои вопросы:

  1. Есть ли способ проверить, какую пару privatekey / pulbickey использует мое sftp-соединение?
  2. Можно ли указать, какую пару ключей использовать?
  3. Если все настроено правильно (с использованием правильной пары ключей и добавлением к авторизованным файлам), почему меня просят ввести пустой пароль?

Заранее спасибо за помощь!

ОБНОВИТЬ Я только что сбежал sftp -vvv user@sftp.xxxxxx.com

....
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /root/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug2: input_userauth_pk_ok: SHA1 fp 45:1b:e7:b6:33:41:1c:bb:0f:e3:c1:0f:1b:b0:d5:e4:28:a3:3f:0e
debug3: sign_and_send_pubkey
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /root/.ssh/id_dsa
debug3: no such identity: /root/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password

Кажется, предполагается, что он пытается использовать открытый ключ ... Что мне не хватает?

debug3: попытка закрытого ключа: /root/.ssh/id_dsa

debug3: такого идентификатора нет: /root/.ssh/id_dsa

Вы создали свою пару ключей как пользователь root? Не похоже, что вы сделали, поскольку /root/.ssh/id_dsa, похоже, не существует (или, возможно, разрешение неверное: должно быть доступно только для чтения / записи root; нет доступа для чтения / записи мира / группы).

РЕДАКТИРОВАТЬ

Похоже, вы сгенерировали ключи RSA по виду вашего ls но вы предлагаете ключи dsa.

ssh ОЧЕНЬ СТРОГО в разрешениях. Кроме того, как вы указываете ключ? Вы позволяете ssh использовать значение по умолчанию ~ / .ssh / id_rsa?

Попробуйте указать ключ в интерфейсе командной строки: -oIdentityFile = / root / .ssh / id_rsa

Если у вас есть доступ к серверу как root, проверьте auth.log, и вы сможете узнать, почему он отклоняет ключ ... но очень интересно, что сервер, похоже, принимает ключ в какой-то момент.

Откройте новый терминал и запустите sshd в режиме отладки (опция -d) на другом порту. Режим отладки работает, только если вы используете полный путь. Так

`which sshd` -d -p 9999

Посмотрите стандартный вывод этой консоли и попробуйте снова sftp

sftp -oPort=9999 user@sftp.xxxxxx.com

Проверьте вывод и, если вы не можете понять, что происходит, вставьте его сюда.

Вы хотите сказать, что можете войти в систему с пустым паролем root? Я настоятельно рекомендую просмотреть это и убедиться, что учетная запись не была взломана.

ls -l /root/.ssh/id_dsa

должен вернуться

-rw------- root ...