Временно отключите аутентификацию с помощью открытого ключа ssh от клиента


37

Есть ли способ временно отключить аутентификацию с открытым ключом при ssh'ing и использовать вместо этого аутентификацию по паролю?

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

Просматривая эту ссылку , я обнаружил, что команда ssh -o PreferredAuthentications=keyboard-interactive -o PubkeyAuthentication=no host1.example.orgработает не везде. И да, это не работает для меня. Я использую: OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 марта 2012

Изменить: Я также пытался ввести, ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no но все еще есть "Отказано в доступе (publickey)".

Итак, есть ли конкретная конфигурация, чтобы сделать на удаленном сервере, чтобы эта команда работала? Или когда эта команда будет работать как положено?

Большое спасибо за советы.


30
Если вы снова пошли по ссылке, кто-то сказал, что ваш метод не работает, но это ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no
сработало

@NikW Большое спасибо, может быть, я должен был упомянуть об этом, попробовал команду, которую вы предлагаете тоже, все еще есть «Отказано в доступе (publickey)».
Nsukami _

1
Просто попал в эту проблему, потому что на моем ноутбуке было ТОННА ключей, и ssh перепробовал их все, и мне отказали даже до того, как я смог ввести пароль. Спасибо за вопрос.
Даллайлаен

3
@NickW Если вы добавите свой комментарий в качестве ответа, я бы проголосовал за него.
Лабиринт

Ответы:


9

Это звучит как проблема конфигурации на стороне сервера.

Если сервер разрешает аутентификацию как с открытым ключом, так и по паролю, то даже если вы пытаетесь подключиться без файла личного ключа, присутствующего на клиенте, он должен запросить пароль.

Если вы получаете сообщение об ошибке, "Permission denied (publickey)" похоже, что аутентификация по паролю не поддерживается на вашем сервере.

Без просмотра файла / etc / sshd_config это трудно понять, но я предполагаю, что вам нужно убедиться, что существует следующая строка:

PasswordAuthentication yes

Перезапустите сервер ssh, и при подключении с клиента вам будет предложено ввести пароль, если закрытый ключ отсутствует или если закрытый ключ не совпадает с открытым ключом на сервере.

Конечно, более надежной альтернативой этому было бы скопировать ваш закрытый ключ на используемый вами ноутбук или фактически сгенерировать новый закрытый ключ для использования на этом ноутбуке и добавить открытый ключ в .ssh/authorized_keys


6

Просто создайте идентификационный файл, который будет пустым.

touch $HOME/.ssh/blank

Если вы оставите разрешение 640 или 644, тогда ssh будет жаловаться на то, что разрешения недостаточно безопасны, и не будет его использовать. Если вы измените его на 600, он будет запрашивать пароль 3 раза и произойдет сбой, поскольку пароль отсутствует. Так что просто оставьте это 640 или 644.

Затем, когда вы SSH использовать эту команду.

ssh -i $HOME/.ssh/blank servername-or-ip

Вы можете использовать .ssh / config и настроить запись хоста так, чтобы она не использовала ключ, но он является менее временным, или вы могли бы создать псевдонимы для server и server-nokey, но он становится длинным и его трудно поддерживать.


5
-i /dev/nullтоже работает и не нуждается в проверке разрешений.
svvac

Пустые / нулевые файлы не работают, sshговорит он Load key "/dev/null": invalid format, затем он продолжает использовать другие ключи, которые вы все равно настроили, и затем не может войти в систему из-за слишком большого количества ошибок аутентификации.
Malvineous

Для меня это не сработало. Возможно мои учетные данные были сохранены в связке ключей гнома.
Ярослав Никитенко
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.