2015-09-03 31 views
-1

我想ssh進入我的亞馬遜服務器。我有兩種做法,一種可行,一種不行,我不確定爲什麼第二種方法不起作用。爲什麼雙引號打破了ssh聲明?

第一種方式:

ssh -i path-to-pem-file [email protected] 

這工作。

方式二:

ssh -i "path-to-pem-file" [email protected] 

這將導致「警告:身份文件‘路徑到PEM文件’無法訪問」。

上述兩個命令都是從Mac OSX上的終端運行的。爲什麼雙引號打破陳述?謝謝。

+3

是否使用了'〜'爲偶然你的home目錄?例如'ssh -i「〜/ keys/pemkey」derp @ wherever「 – phpisuber01

+6

顯示實際路徑會很有用,雖然我懷疑phpisuber01是正確的。 – chepner

回答

2

如果您使用shell擴展或其他special characters它們的特殊含義在引用時不會被解釋。他們被認爲是字面值。

您可以用~或特殊字符複製此爲$HOME

不工作

ssh -i "~/mypemkey.pem" [email protected] 

作品

ssh -i ~/mypemkey.pem [email protected] 

本質上的SSH應用程序試圖找到一個文字文件拍攝當擴展時代替/Users/someuser/,代替h ~/

想要看到它在引擎蓋下的行動....測試它!

創建一個簡單的bash腳本

echo "echo \$1" > test.sh 

執行它

/bin/bash test.sh ~/Desktop 
    outputs: /Users/phpisuber01/Desktop 

/bin/bash test.sh "~/Desktop" 
    outputs: ~/Desktop