我可以在命令行中给予以下命令
C:\>cd "C:\Program Files\ExtraPuTTY\Bin"
C:\Program Files\ExtraPuTTY\Bin>putty.exe -ssh root@172.20.0.102 22
这有助于我通过PuTTY打开SSH会话。
但是我无法在Python脚本中重现它们。
cwd="C://Program Files//ExtraPuTTY//Bin"
COMMAND="ls"
ssh = Popen(['putty.exe -ssh','%s'%HOST, COMMAND,cwd],shell=True,stdout=f,stderr=f)
我看到的错误是
“putty.exe -ssh”'未被识别为内部或外部命令、可操作程序或批处理文件
3条答案
按热度按时间zte4gxcn1#
在putty download page中,下载并安装
plink
,并确保其位于windows path($PATH
变量)中然后,这个python代码片段应该可以工作:
stdin
是用户在终端中键入的命令,stdout
和stderr
是服务器输出。在ssh连接的
user="root"
、server="172.20.0.102 22"
或password
中填写凭据falq053o2#
您必须将
cwd
作为Popen
的cwd
参数传递:你应该使用Plink而不是PuTTY来自动执行远程命令,Plink接受命令行上的命令(PuTTY不接受):
更好的是,使用原生Python SSH库,比如Paramiko:
Python Paramiko - Run command
sr4lhrrt3#
我知道这有点离题,但最封闭的主题,我发现(我想找到的代码一个星期前在该职位)
我正在寻找一个代码,以大量检查密码是否有效,并更改它,如果可能的话
Putty有几个cli工具,如plink和pscp,它们对很多东西都很有用。
这是python 3的函数,用来连接到ssh服务器并接受ssh密钥。使用pscp允许自动接受密钥......对于第一次使用可能很有用
当然,这只是检查连接(并接受ssh键)
这里有一个在主机上运行脚本的代码(确切地说是密码修改).要做到这一点,你不能使用一行语法(即使它必须工作,它不会,我试过了)你必须通过一个脚本文件,并用plink推送它.
所以现在你有两个功能来大规模地改变你的系统密码。
**额外好处:**一个获取/etc/passwd和/etc/shadow的函数。为什么?用于IT管理员的教育用途,比如“嘿,你他妈的在哪里都使用相同的密码,现在所有这些帐户都可以被暴力强迫。所以清理你的烂摊子吧
更多备注:
如果你不使用shell=True,你就不会得到输出,它也不会工作,我不知道为什么。
我还尝试了异步通信来逐行发送命令,它不起作用。
我也尝试了ssh命令(是的,它现在存在于windows \o/上),但它不适合我的目的。
希望这有一天能帮助到别人,一周前它会帮我很大的忙:)