嘿,我是全新的Unix,我需要写一个“shell脚本”(?)来连接到另一个终端并运行一些SQL查询。我到底怎么做到这一点?我一直在浏览这个板子和其他板子的一些答案,如果我找到了我的答案,我不理解它。Unix没有密码的SSH
我能够手动连接,输入密码等,但我需要自动化该过程。我无法访问Perl(正如一些答案所建议的),我无法编辑etc/shadow文件。所以我认为这必须严格通过Unix本身来完成。这是我目前使用的:
X=`vUser='USER-NAME'
vPass='PASSWORD'
vTable='TABLENAME'
vHOST='HOST-NAME'
vPORT=4443
ssh [email protected]
expect {
"[email protected] password:"{
send -s "'vPass'\r"
}
}
SQL_Query='select * from vTable limit 10'
mysql -p$vPASS -D$vTable -u$vUser P$vPort<<EOF
$SQL_Query
EOF`
echo $X>Output.dat
请详细解释所有的答案。我正在尝试学习。
您可能只是想创建一个无密码的SSH密钥对:http://linuxconfig.org/passwordless-ssh 但要小心,您的脚本似乎要以root身份连接到远程计算机。你真的不应该那样做,而且你**尤其不应该使用无密码的密钥对。 – Mike
是的。在这种情况下,你不应该使用密码。您也可以在接受的答案中找到创建SSH密钥的方法[此处](http://serverfault.com/questions/241588/how-to-automate-ssh-login-with-password)。 – Rik
通过ssh禁用root访问通常被认为是很好的做法。 – symcbean