SSH在终端中工作,但不在shell脚本中工作

时间:2012-03-16 14:57:07

标签: linux shell ssh amazon-ec2 amazon-web-services

我正在尝试执行上传到AWS实例的脚本。如果我在MacBook终端中运行以下命令,则成功:

ssh -o StrictHostKeyChecking=no -i ~/.ec2/my.pem ec2-user@ec2-<address>.amazonaws.com "chmod u+x ./myScript.sh"

我将相同的命令移植到本地计算机上的一个简单的shell脚本中,在那里我传递了信息:

#!/bin/sh
# myLocalScript.sh

host=$1
pem=$2
fileName=$3

ssh -o StrictHostKeyChecking=no -i $pemkey ec2-user@$host "chmod u+x ./$fileName"

当我使用此命令运行它时:

sh myLocalScript.sh ec2-user@ec2-<address>.amazonaws.com ~/.ec2/my.pem myScript.sh

我收到以下错误:

Warning: Identity file ec2-user@ec2-<address>.amazonaws.com not accessible: No such file or directory.
ssh: Could not resolve hostname chmod u+x ./myScript.sh: nodename nor servname provided, or not known

我做错了什么?

1 个答案:

答案 0 :(得分:5)

您需要$pem而不是$pemkey

此外,你应该养成双引号变量的习惯,除非你非常特别需要一个空变量“消失”。