我正在尝试ssh到我的亚马逊服务器。我有两种方法可以做到,一种有效,一种无效,我不知道为什么第二种方法不起作用。
ssh -i path-to-pem-file username@public-ip
这很有效。
ssh -i "path-to-pem-file" username@public-ip
这会导致“警告:身份文件”路径到pem文件“无法访问”。
以上两个命令都是从Mac OSX上的终端运行的。为什么双引号会破坏声明?感谢。
答案 0 :(得分:2)
如果您在引用时不会解释使用shell扩展或其他special characters的特殊含义。它们被视为字面值。
您可以使用~
或$HOME
无效
ssh -i "~/mypemkey.pem" ec2-user@somehost
<强>作品强>
ssh -i ~/mypemkey.pem ec2-user@somehost
基本上,ssh应用程序在扩展时尝试查找文字文件路径~/
而不是/Users/someuser/
。
希望在引擎盖下看到它......测试它!
创建一个简单的bash脚本
echo "echo \$1" > test.sh
执行
/bin/bash test.sh ~/Desktop
outputs: /Users/phpisuber01/Desktop
/bin/bash test.sh "~/Desktop"
outputs: ~/Desktop