2015-08-13 4 views
1

Я пытаюсь настроить удаленную виртуальную машину с облачным 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 каталог. Я пробовал:

  1. Изменение прав доступа к файлам с помощью:

    channel = ssh.invoke_shell() 
    channel.send("sudo chmod 755 /etc/bind/named.conf.local") 
    
  2. Создание сценария в удаленной виртуальной машине, чтобы сделать ту же самую задачу

  3. Копирование файла с сервера на удаленный Справочник

Кажется, что я не могу изменить права доступа к файлам, необходимые для его записи, и изображение, которое я у меня нет пароля (я могу получить к нему доступ только через файл ключа). Пожалуйста, помогите мне, я застрял в течение 5 часов

+0

Если у вас есть python2 вы можете дать тканям попробовать или просто посмотреть на своем код и проверить, как ткань звонков paramiko – fernandezcuesta

+0

или, может быть, целевой файл является неизменным. Двойная проверка с помощью lsattr /etc/bind/named.conf.local – fernandezcuesta

+0

файл назначения очень редактируется. Я могу напрямую обращаться к виртуальной машине с помощью SSH и редактировать ее как пользователь root. Однако я не могу сделать то же самое с библиотекой python paramiko. –

ответ

Смежные вопросы