Что я хочу сделать: использовать скрипт Python для входа в виртуальную машину в openstack
Окружающая среда
Что я сделал до сих пор: я использовал CLI: openstack keypair create
abc > /root/keydir/abc
создать пару ключей openstack и использовать chmod 600 abc to change the permission
Затем я создаю виртуальную машину на панели управления и использую ключ, который я только что создал.
Я настраиваю виртуальную машину и жду ее до нужного состояния. Наконец, я использую эту команду в узле контроллера: ip netns exec qdhcp-c8db7805-c5e8-aaaa-xxxx-xxxxx ssh -i / root / keydir / abc root@192.168.111.104 (ip vm) "ping 127.0.0.1 -c 10"
Когда я запускаю это в python, он показывает мне: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
Я запускаю команду в Linux напрямую, она предлагает мне ввести пароль, и это не тот результат, который я хочу
Почему не работает пара ключей?
Это обычная проблема, с которой я столкнулся. Когда вы генерируете ключи на стороне сервера, вы должны экспортировать закрытый / открытый ключ RSA на компьютер, с которого вы хотите подключиться. Открытый ключ (который также находится в авторизованных ключах) - единственный, который вам понадобится.
Я использую PuTTy для этого, потому что вы можете сгенерировать файл .ppk с ключом RSA из Блокнота. Вам просто нужно скопировать файл с их Key ------ BEGIN RSA KEY ------- и поместить его в Блокнот, а затем PuTTy Key Generator, чтобы преобразовать его в .ppk.
Вот отличное руководство: https://support.rackspace.com/how-to/log-into-a-linux-server-with-an-ssh-private-key-on-windows/