无法通过 Paramiko 编辑远程 VM 中的文件
Cant edit files in remote VM via Paramiko
我正在尝试配置具有 Ubuntu 14.04 云映像的远程虚拟机来安装绑定 DNS 服务器。目前我可以使用 SSH 进入它:
ssh.connect( hostname = dns_ip , username = "ec2-user", pkey = k )
我还可以 edit/create /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")
正在远程 VM 中生成脚本来执行相同的任务
- 正在将文件从服务器复制到远程目录
我似乎无法更改写入它所需的文件权限,而且我使用的图像没有密码(我只能通过密钥文件访问它)。请帮帮我,我已经卡了 5 个小时了
使用 "root" 通过 SSH 连接到 VM 后,我能够编辑文件。
ssh.connect( hostname = dns_ip , username = "root", pkey = k )
以 root 身份使用 SSH,我按照说明进行操作 link https://serverfault.com/questions/294892/how-can-i-login-amazon-ec2-with-root-directly-in-putty-or-winscp
我正在尝试配置具有 Ubuntu 14.04 云映像的远程虚拟机来安装绑定 DNS 服务器。目前我可以使用 SSH 进入它:
ssh.connect( hostname = dns_ip , username = "ec2-user", pkey = k )
我还可以 edit/create /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")
正在远程 VM 中生成脚本来执行相同的任务
- 正在将文件从服务器复制到远程目录
我似乎无法更改写入它所需的文件权限,而且我使用的图像没有密码(我只能通过密钥文件访问它)。请帮帮我,我已经卡了 5 个小时了
使用 "root" 通过 SSH 连接到 VM 后,我能够编辑文件。
ssh.connect( hostname = dns_ip , username = "root", pkey = k )
以 root 身份使用 SSH,我按照说明进行操作 link https://serverfault.com/questions/294892/how-can-i-login-amazon-ec2-with-root-directly-in-putty-or-winscp