2014-06-27 92 views
1

我使用PHPSecLib與此代碼:限制性讀取權限和文件獲取內容

ssh = new Net_SSH2('my-ec2-dns'); 
$key = new Crypt_RSA(); 
$key->loadKey(file_get_contents('my-ec2-private-key')); 

只有我能夠訪問計算機和服務器。

我得到file_get_contents上的拒絕權限,因爲ec2實例需要私鑰的400權限。

如何解決此問題,以便我可以在PHP env中將SSH連入我的服務器?

+1

如果您不是在執行'$ rsa-> loadKey(file_get_contents(...))',您只需複製/粘貼密鑰並執行'$ rsa-> loadKey(...)'? – neubert

+0

這就是我所做的。感謝您的指點。 – egekhter

回答

1

實現此目的的唯一方法是以某種方式規避安全措施。

可能的解決辦法:

  • 私鑰複製你到另一個文件有更寬鬆的權限 (640)。
  • 添加Web服務器的組中其下運行的用戶,以便它可以訪問該文件
  • 確保Web服務器沒有的chroot版以任何方式,因此它可以達到您的文件或添加符號鏈接(需要+ FollowSymlink)
+0

我將密鑰的內容複製到另一個文件中,就像您在640中建議的一樣,並且在其上執行了file_get_contents。感謝您的正確方向。 – egekhter