1
我想知道是否有人對此有任何見解。我有一個bash腳本,應該把我的SSH密鑰放到遠程機器上。從here採用,腳本讀取,python shell命令 - 爲什麼它不工作?
#!/usr/bin/sh
[email protected]
KEY="$HOME/.ssh/id_rsa.pub"
KEYCODE=`cat $KEY`
ssh -q $REMOTEHOST "mkdir ~/.ssh 2>/dev/null; chmod 700 ~/.ssh; echo "$KEYCODE" >> ~/.ssh/authorized_keys; chmod 644 ~/.ssh/authorized_keys"
這工作。等效Python腳本應該
#!/usr/bin/python
import os
os.system('ssh -q %(REMOTEHOST)s "mkdir ~/.ssh 2>/dev/null; chmod 700 ~/.ssh; echo "%(KEYCODE)s" >> ~/.ssh/authorized_keys; chmod 644 ~/.ssh/authorized_keys"' %
{'REMOTEHOST':'[email protected]',
'KEYCODE':open(os.path.join(os.environ['HOME'],
'.ssh/id_rsa.pub'),'r').read()})
但在這種情況下,我得到
sh: line 1: >> ~/.ssh/authorized_keys; chmod 644 ~/.ssh/authorized_keys: No
such file or directory
我在做什麼錯?我試圖逃避最內部的引號,但同樣的錯誤信息...先謝謝你的迴應。
精氨酸!所以它*是*引用的...我想我也可以做'...'...'...'...'...'但是我一時混淆了bash解決方案與兩套嵌套雙引號一起工作的網絡......無論如何,感謝您的誡勉談話。我將閱讀子流程。 – hatmatrix 2009-09-22 06:16:13