通过sftp以用户为根用户和基于ssh的身份验证编辑文件会出现IOError:[Errno 13]权限被拒绝错误

2024-04-24 13:01:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到IOError:[Errno 13]在使用基于SSH的身份验证时尝试使用用户root编辑文件时出现权限拒绝错误。我做错什么了?你知道吗

try:
  ssh = paramiko.SSHClient()
  ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  ssh.connect(hostname, username=userName, key_filename=keyFile)
  print "Connection succesfully established ... "
except paramiko.AuthenticationException,e:
  print "Could not connect to %s" % hostname

def changepwd():
  sftp_client = ssh.open_sftp()
  fname = '/etc/ssh/sshd_config'
  with sftp_client.open(fname, 'r+') as f:
    data = f.read()
    f.seek(0)
    f.write(re.sub(r'PasswordAuthentication no', 'PasswordAuthentication yes', data))
    f.close()
  os.system("service sshd restart")
  sftp_client.close()
  ssh.close()

错误:

    with sftp_client.open(fname, 'r+') as f:
  File "/usr/lib/python2.7/site-packages/paramiko/sftp_client.py", line 372, in open
    t, msg = self._request(CMD_OPEN, filename, imode, attrblock)
  File "/usr/lib/python2.7/site-packages/paramiko/sftp_client.py", line 813, in _request
    return self._read_response(num)
  File "/usr/lib/python2.7/site-packages/paramiko/sftp_client.py", line 865, in _read_response
    self._convert_status(msg)
  File "/usr/lib/python2.7/site-packages/paramiko/sftp_client.py", line 896, in _convert_status
    raise IOError(errno.EACCES, text)
IOError: [Errno 13] Permission denied

Tags: inpyclientparamikolibpackagesusrline
1条回答
网友
1楼 · 发布于 2024-04-24 13:01:07

谢谢大家的回复。最后我直接使用exec\ u命令,效果很好。你知道吗

stdin, stdout, stderr = ssh.exec_command("sed -i -e 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config")

相关问题 更多 >