2017-03-12 23 views
0

我使用pxssh建立到服務器的SSH連接。連接可以建立,我可以運行簡單的命令,如ls -lPython pxssh執行iptables不工作

我現在需要的是通過SSH連接創建iptable條目。 我已經試過以下

s = pxssh.pxssh() 

print(ip) 
if not s.login(ip, username, auth_password): 
    Log("SSH session failed on login") 
    Log(str(s)) 
else: 
    Log("SSH session login successful") 
    cmd = 'sudo iptables -I INPUT -p udp -m udp --dport 53 -j ACCEPT;' 
    s.sendline(cmd) 
    s.prompt()   
    print(s.before) 
    s.logout() 

它運行沒有錯誤,但連接到服務器,已創建任何iptable的條目時!?

回答

1

嘗試修改您的python腳本是這樣的:

cmd = '/usr/bin/sudo /usr/sbin/iptables -I INPUT -p udp -m udp --dport 53 -j ACCEPT' 
s.sendline(cmd) 

如果這是你的操作系統不同,則應該更換須藤和iptables路徑

也可以嘗試打印s.sendline(CMD),看看有什麼實際上是通過服務器上的ptyhon腳本執行的,只是爲了確保執行正確的iptables命令