Я работаю над настройкой некоторой автоматизации развертывания, и одна из вещей, которые я пытаюсь сделать, - это использовать Ruby Capistrano для удаленного выполнения команд через ssh. я использовал openssh cygwin для запуска sshd на коробке, которую я использую в качестве тестовой жертвы.
Однако изначально для этого потребуется один и тот же пользователь на каждом ящике жертвы с одинаковым паролем, что явно плохая идея.
Поэтому я хотел бы включить аутентификацию с открытым ключом, но после пары дней ударов головой об стену у меня ничего не получается. Может ли кто-нибудь указать мне на успешное руководство в Интернете для достижения этой цели?
Я так думаю:
ssh username@victim
и меня не должны спрашивать пароль ... верно? Это та часть, которая терпит неудачу; Меня спрашивают мой пароль.Чтобы отключить аутентификацию по паролю, вам нужно отредактировать sshd_config на жертве и установить PasswordAuthentication = no
В качестве альтернативы отредактируйте ssh_config на overlord или используйте параметр -o, чтобы он не предлагал аутентификацию по паролю.
Ты можешь использовать ssh -v -v -v ...
чтобы более четко увидеть, что происходит.
редактировать
Я знаком с настройкой аутентификации с открытым ключом SSH с помощью Putty, puttygen и pageant, но не с инструментами OpenSSH. Я считаю, что с OpenSSH процесс
$ ssh-keygen -t rsa
Затем скопируйте ~/.ssh/id_rsa.pub
к серверу ~/.ssh/authorized_hosts
и убедитесь, что права доступа 600 для файла и 700 для каталога.
Справочная страница ssh-keygen должна объяснить, как сгенерировать закрытый ключ, незащищенный какой-либо парольной фразой. Если вы сделаете это, вам никогда не придется вводить пароль, но он будет небезопасным. Если вы настроите агент аутентификации, я считаю, что любая парольная фраза потребуется только один раз за сеанс на «overlord». Если у вас нет пароля, я не вижу смысла в настройке агента аутентификации, он должен просто прочитать закрытый ключ, не запрашивая пароль.