問題
在shell終端登錄執行命令和腳本不會報錯,paramiko執行就會報錯
原因
默認情況下,SSHClient.exec_command不以“登錄”模式運行shell,也不為會話分配偽終端.
因此,(在一些交互式SSH會話中)可能獲取不同的啟動腳本集(特別是對於非交互式會話.bash_profile和.bashrc不是源)
解決
命令封裝加上bash --login -c 比如原始命令是
ssh.exec_command('crm')
現在改成這樣
ssh.exec_command("bash --login -c 'crm'")
The end