【发布时间】:2018-09-04 09:38:52
【问题描述】:
我有 3 台机器:
- 服务器 A(运行代码的构建机器)
- 服务器 B (Linux)
- 服务器 C (Linux)
我的代码在服务器 A 中运行。我想 ssh 到服务器 B,然后将文件复制到服务器 C。我想使用服务器 B 和服务器 C 的密码而不是密钥。
就我而言,我可以编写代码来使用 Paramiko 将文件从本地机器复制到远程机器。我在 stackoverflow 上寻找了许多解决方案,如下所示:
import paramiko
from scp import SCPClient
def createSSHClient(server, port, user, password):
client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(server, port, user, password)
return client
ssh = createSSHClient(server, port, user, password)
scp = SCPClient(ssh.get_transport())
cp.get(r'/nfs_home/appers/xxxx/test2.txt', r'C:\Users\xxxx\Desktop\MR_Test')
但是文件再次从本地(运行代码的地方)复制到远程,而不是远程到远程。
【问题讨论】:
-
我尝试使用 paramiko ssh 并发送 scp 命令,然后使用 stdin 发送密码。但问题是 scp(以及后端的 ssh)直接从终端接受密码,而不是从标准输入接受密码(不像 'sudo -S')