通过xshell登陆堡垒机访问服务器执行su -命令是不用再输入密码的,但是通过python执行到su - 传入密码后会显示permission denied,求教大神们是否有解决办法?
在堡垒机中如下:
在python中如下:
通过xshell登陆堡垒机访问服务器执行su -命令是不用再输入密码的,但是通过python执行到su - 传入密码后会显示permission denied,求教大神们是否有解决办法?
在堡垒机中如下:
在python中如下:
问题点: 权限问题,需要切换到root下进行su.
测试代码如下
import paramiko
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(hostname=ipaddr, port=port, username=user,password=pwd)
# 假设以上以普通用户登录
chan = ssh_client.invoke_shell() # 使用伪终端,默认vt100创建交互式
chan.send('su -\n') # 发送su 命令
chan.recv(4096).decode() # 接收返回
chan.send('root密码\n') # 发送root密码
# 以上切换root完毕
# 开始执行shell命令
stdin, stdout, stderr = self.client.exec_command('ls /root')
out, err = stdout.read(), stderr.read()
mess = out if out else err
mess = mess.strip().decode()
print(mess) # 查看输出结果