sftp и открытые ключи
Я пытаюсь подключиться к серверу, размещенному кем-то другим.
Чтобы убедиться, что это работает, я сделал стандарт sftp user@sftp.xxxxxx.com
мне предложили с паролем, и это работало отлично.
Я настраиваю скрипт cron для отправки файла раз в неделю, поэтому предоставил им наш открытый ключ, который, как они утверждают, добавил в свой файл author_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
(без пароля) он вошел в меня в порядке...
Итак, вот мои вопросы:
- Есть ли способ проверить, какую пару privatekey/pulbickey использует мое соединение sftp?
- Можно ли указать, какую пару ключей использовать?
- Если все настроено правильно (используется правильная пара ключей и добавлены в авторизованные файлы), почему меня просят ввести пустой пароль?
Заранее спасибо за помощь!
ОБНОВЛЕНИЕ Я только что побежал 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
Похоже, он пытается использовать открытый ключ... Чего мне не хватает?
4 ответа
debug3: пробуем закрытый ключ: /root/.ssh/id_dsa
debug3: нет такой личности: /root/.ssh/id_dsa
Вы создали свою пару ключей как пользователь root? Выглядит не так, как вы, так как /root/.ssh/id_dsa, по-видимому, не существует (или, возможно, разрешение неверно: должно быть доступно только для чтения / записи для root; нет доступа для чтения / записи для world/group).
РЕДАКТИРОВАТЬ
Похоже, вы сгенерировали ключи RSA по внешнему виду вашего ls
но вы предлагаете ключи DSA.
Откройте новый терминал и запустите sshd в режиме отладки (опция -d) на другом порту. Режим отладки работает только если вы используете полный путь. Так
`which sshd` -d -p 9999
Смотрите стандартный вывод этой консоли и попробуйте снова sftp
sftp -oPort=9999 user@sftp.xxxxxx.com
Проверьте вывод и, если вы не можете понять, что происходит, вставьте его сюда.
SSH ОЧЕНЬ СТРОГО на разрешениях. Кроме того, как вы указываете ключ? Вы позволяете ssh попробовать по умолчанию ~/.ssh/id_rsa?
Пожалуйста, попробуйте указать ключ в CLI с помощью этого: -oIdentityFile=/root/.ssh/id_rsa
Если у вас есть доступ к серверу от имени пользователя root, проверьте файл auth.log, и вы сможете выяснить, почему он отклоняет ключ... но очень интересно, что сервер в какой-то момент принимает ключ.
Вы говорите, что можете войти с пустым паролем root? Я очень рекомендую рассмотреть это и убедиться, что учетная запись не была взломана.
ls -l /root/.ssh/id_dsa
должен вернуться
-rw------- root ...