import paramiko
def switch_user(hostname, username, password, new_username, new_password):
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname, username=username, password=password)
shell = client.invoke_shell()
shell.send(f"su - {new_username}\n")
while not shell.recv_ready():
shell.send(f"{new_password}\n")
while shell.recv_ready():
print(shell.recv(1024))
client.close()
switch_user("192.168.0.1", "username", "password", "new_username", "new_password")
上述代码使用paramiko连接到SSH服务器,并通过invoke_shell()
方法进入一个新的shell会话。然后,使用send()
方法发送切换用户的命令(su - new_username
),并使用send()
方法输入新用户的密码。最后,使用recv()
方法读取输出结果,并关闭SSH连接。
请注意,切换用户需要在目标服务器上已经配置了适当的权限,以允许当前用户切换到指定的新用户。