Я пытаюсь настроить удаленную виртуальную машину с облачным Ubuntu 14.04 для установки связанного DNS-сервера. В настоящее время я могу SSH в нее с помощью:Невозможно редактировать файлы в удаленной виртуальной машине через Paramiko
ssh.connect(hostname = dns_ip , username = "ec2-user", pkey = k)
Я также возможность редактировать/создавать файлы в каталоге /tmp
с помощью:
stdin, stdout, stderr = ssh.exec_command("cat >> /tmp/named.conf.local")
stdin.write('key ' + domain +'. {\n')
stdin.flush()
stdin.write('algorithm "HMAC-MD5";\n')
stdin.channel.shutdown_write()
Однако я не могу сделать то же самое в /etc
каталог. Я пробовал:
Изменение прав доступа к файлам с помощью:
channel = ssh.invoke_shell() channel.send("sudo chmod 755 /etc/bind/named.conf.local")
Создание сценария в удаленной виртуальной машине, чтобы сделать ту же самую задачу
- Копирование файла с сервера на удаленный Справочник
Кажется, что я не могу изменить права доступа к файлам, необходимые для его записи, и изображение, которое я у меня нет пароля (я могу получить к нему доступ только через файл ключа). Пожалуйста, помогите мне, я застрял в течение 5 часов
Если у вас есть python2 вы можете дать тканям попробовать или просто посмотреть на своем код и проверить, как ткань звонков paramiko – fernandezcuesta
или, может быть, целевой файл является неизменным. Двойная проверка с помощью lsattr /etc/bind/named.conf.local – fernandezcuesta
файл назначения очень редактируется. Я могу напрямую обращаться к виртуальной машине с помощью SSH и редактировать ее как пользователь root. Однако я не могу сделать то же самое с библиотекой python paramiko. –