gpt4 book ai didi

python - Paramiko SSH使用python设置环境变量

转载 作者:行者123 更新时间:2023-11-28 18:37:22 27 4
gpt4 key购买 nike

我正在使用 Paramiko 向远程 Windows Server 发送 ssh 命令,这可行,但我需要先设置一个环境变量,为要使用的主命令设置密码。所以在我使用的 Windows Server 命令行上:

$ set ASPERA_SCP_PASS=passwordToUse
$ ascp -d --src-base=//DirectoryToSend //DirectoryToSend username@123.23.34.1:/

这会设置一个环境变量 passwordToUse,它会在 ascp 命令中使用。但我无法与 Paramiko 一起使用。运行以下脚本时,我得到 exit status: 0,但该命令未在远程服务器上运行。

import sys
import paramiko

nbytes = 4096
hostname = '10.0.0.1'
port = 22
username = 'remoteUsername'
password = 'remotePassword'
command1 = 'set ASPERA_SCP_PASS={}'.format('passwordToUse')
command2 = 'ascp -d --src-base=//DirectoryToSend //DirectoryToSend username@123.23.34.1:/'
command3 = command1 + ", " + command2

client = paramiko.Transport((hostname, port))
client.connect(username=username, password=password)

stdout_data = []
stderr_data = []
session = client.open_channel(kind='session')
session.exec_command(command3)
while True:
if session.recv_ready():
stdout_data.append(session.recv(nbytes))
if session.recv_stderr_ready():
stderr_data.append(session.recv_stderr(nbytes))
if session.exit_status_ready():
break

print 'exit status: ', session.recv_exit_status()
print ''.join(stdout_data)
print ''.join(stderr_data)

session.close()
client.close()

最佳答案

是这样的吗?

command1 = 'set ASPERA_SCP_PASS={}'.format(os.environ['ASPERA_SCP_PASS'])

关于python - Paramiko SSH使用python设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31207545/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com