我正在尝试执行上传到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
我做错了什么?
答案 0 :(得分:5)
您需要$pem
而不是$pemkey
。
此外,你应该养成双引号变量的习惯,除非你非常特别需要一个空变量“消失”。