Как заставить клиента ssh использовать только пароль auth?
Если я использую pubkey auth из: например, Ubuntu 11.04, как я могу настроить ssh-клиент на использование только пароля auth на сервере? (просто необходимо из-за проверки паролей на сервере, где я по умолчанию регистрирую ключ)
Я нашел способ:
mv ~/.ssh/id_rsa ~/.ssh/id_rsa.backup
mv ~/.ssh/id_rsa.pub ~/.ssh/id_rsa.pub.backup
, и теперь мне будет предложено ввести пароль, но есть ли какие-либо официальные способы?
8 ответов
В последнее время я тоже нуждался в этом, и придумал это:
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no example.com
Вам нужно убедиться, что клиент не настроен на запрет аутентификации паролей.
Я открыл для этой цели ярлык:
ssh user:@example.com
Обратите внимание на двоеточие (:
) и пустой пароль после него.
Как и метод, опубликованный scoopr, вы можете установить параметры каждого хоста в конфигурационном файле клиента ssh.
В вашем каталоге .ssh
создайте файл с именем config
(если он еще не существует) и установите разрешения 600
, вы можете создавать разделы, начинающиеся с
host <some hostname or pattern>
, а затем установите для каждого параметра хоста, например,
host bob.specific.foo
user fred
host *.home.example
user billy
port 9191
, чтобы вы могли
host server.to.test
PubkeyAuthentication=no
в этом файле, а затем просто
ssh server.to.test
, и опция будет поднята.
Мне это недавно понадобилось, но ни один из вышеперечисленных параметров не работал, ssh -v
показал, что параметры командной строки, переданные с помощью переключателя -o
, были перегружены значения, указанные в моем файле ~/.ssh/config
.
Что получилось:
ssh -F /dev/null <username>@<host>
На странице руководства ssh
:
-F configfile
Specifies an alternative per-user configuration file. If a
configuration file is given on the command line, the system-wide
configuration file (/etc/ssh/ssh_config) will be ignored. The default
for the per-user configuration file is ~/.ssh/config.
Кредиты на этот ответ: Как я могу сделать ssh ignore .ssh /конфигурации?
@scoopr и @Halil Ã-zgür не помогли мне.
Это сработало для меня:
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected]
Источник: http: //linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html
Я попробовал несколько из этих ответов, но ssh -v
продолжал показывать, что мои открытые ключи вытаскиваются из моего домашнего каталога. Однако указание фиктивного файла идентичности сделало трюк для меня:
ssh -i /dev/null host
Мне нужно сделать это надолго (чтобы обойти сломанный SSH-сервер в APU в стойке в стойке APC - оставайтесь далеко от этих вещей, если вы заботитесь о безопасности - так что я закончил тем, что поместил эту опцию в мой файл конфигурации:
Host apc1 apc2
KexAlgorithms +diffie-hellman-group1-sha1
IdentityFile /dev/null
И также убедитесь, что в .ssh /config нет BatchMode=yes
.
В противном случае у вас нет шансов получить интерактивную подсказку с паролем.
Я могу быть единственным в мире с этой проблемой, но у меня был ssh
из другой операционной системы (choco ssh в Windows в оболочке cygwin), которая просматривалась через which ssh
Итак, решение было
/usr/bin/ssh [email protected]
Обратите внимание на полный путь. Я сделал это после запуска cyg-get openssh