无法通过Paramiko编辑远程VM中的文件

时间:2015-08-13 15:59:20

标签: python file ssh paramiko

我正在尝试配置具有Ubuntu 14.04云映像的远程虚拟机来安装绑定DNS服务器。目前我可以通过以下方式使用SSH进行SSH:

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. 在远程VM中生成脚本以执行相同的任务

  3. 将文件从服务器复制到远程目录
  4. 似乎我无法更改写入它所需的文件权限,而我使用的图像没有密码(我只能通过密钥文件访问它)。请帮帮我,我被困了5个小时

1 个答案:

答案 0 :(得分:0)

我可以在使用" root"之后编辑文件。 SSH到VM。

ssh.connect( hostname = dns_ip , username = "root", pkey = k )

以root用户身份登录我按照此链接上的说明https://serverfault.com/questions/294892/how-can-i-login-amazon-ec2-with-root-directly-in-putty-or-winscp