2017-01-06 93 views
1

我有一個EC2 Linux服務器,它在子網a中擁有公共IP,除此之外,我還在子網b中創建了另一臺EC2服務器,它具有私有IP。兩臺服務器都在同一個VPC中。我想從公共服務器ssh到私人服務器。 SSH端口在服務器的安全組設置上打開。但我否認設置從公共服務器到私有服務器-EC2的SSH連接?

[[email protected] ~]$ ssh [email protected] 
The authenticity of host '10.0.20.71 (10.0.20.71)' can't be established. 
RSA key fingerprint is 11:19:79:39:a3:04:d2:23:5e:af:9e:c6:98:9c:7b:bd. 
Are you sure you want to continue connecting (yes/no)? yes 
Warning: Permanently added '10.0.20.71' (RSA) to the list of known hosts. 
Permission denied (publickey). 

我相信權限(公網IP),我需要私人服務器的公鑰加入到公共服務器弄好了。但我不知道它的正確方法,如果我錯過了其他一些設置。

我已經使用Google搜索,但找不到一個直接的方法來解決這個問題。

更新時間:

如果我使用添加劑,則只能從我的電腦我可以ssh到專用服務器,如果有就需要ssh到專用服務器更多的用戶,都需要做代理轉發所以我不確定這是否是這種情況的最佳方式。如果我想要連接到公共服務器時使用密鑰,那麼在沒有使用密鑰的情況下ssh到私有服務器會怎麼樣。像:

ssh [email protected] 

一個答案:可以使用默認密鑰位置。

Setting the default ssh key location

+0

您是否使用相同的密鑰對啓動了兩臺服務器? – helloV

+0

@helloV沒有鑰匙對不同 – Matrix

回答

1

既然你推出的每一個與它的流n密鑰對,你將不得不使用每個服務器各自的密鑰對ssh進入它。所以,有兩種方法登錄到10.0.20.71。 1)您可以將用於啓動它的私鑰的副本放到公共服務器上,然後將其用於授權給私有服務器 - 例如,

[[email protected] ~]$ ssh -i you_private_key.pem [email protected] 

的說是更安全的解決方案將使用ssh代理轉發。使用此解決方案,您不會將私鑰存儲在服務器上。在您的計算機上,您應該有用於創建2個EC2實例的2個密鑰。

ssh -A [email protected]<public ip address of public server> 

然後SSH私有服務器而不答:你可以這兩種對SSH代理與命令

$ ssh-add /path/to/key 

一旦你可以登錄到公共服務器與代理轉發代理加密鑰(代理從您的計算機轉發密鑰)

ssh [email protected] 
+0

感謝您的回答。它非常接近我需要的內容。但有另一臺服務器具有這樣的設置,我可以通過私鑰服務器ssh訪問私鑰服務器,但是當我通過計算機連接到公用服務器時,我使用:ssh -i「/path/key/key1.pem」user @ ec2 -.... aws.com然後從公共服務器,我連接到私人服務器:ssh [email protected]。我只知道私有服務器(id_rsa n id_rsa.pub)的密鑰位於公共服務器上的目錄〜/ .ssh /中,似乎它是由sshd setup以某種方式不由用戶添加的。你知道這個設置是如何工作的嗎?請參閱最新的問題。 – Matrix

2

你應該已經指定了公鑰二審(身份文件)。您創建時也應該下載該公鑰。您需要使用SFTP或SCP將該公鑰文件上載到第一個實例。然後,您需要使用ssh命令的-i選項指定該公鑰文件的路徑。

+0

感謝您的回覆。我在製作服務器時創建並分配了一個密鑰對。每個服務器都有自己的密鑰(key.pem)。那麼我應該從私人服務器的.pem密鑰創建一個公鑰並將其複製到我的公用服務器?你建議哪條路? 〜/ .ssh /?但關於sshd安裝呢? – Matrix

+0

您不必在'sshd'中更改任何內容。 '〜/ .ssh /'是通常的路徑。您需要簡單地將服務器B的key.pem文件複製到服務器A上,並在從服務器A連接到服務器B時使用該文件。 –

1

您想要連接的實例與您用於連接的計算機一樣好。所以假設你有一個實例A和一個實例B,並且如果你想從A - > B連接,那麼它就像從你的機器連接到B一樣好。爲了達到這個目的,你必須做同樣的事情您連接到機器B,將B的pem文件下載到機器A上(在這種情況下,您將不得不使用scp命令將pem文件上傳到機器A)

發佈此信息,您應該能夠正確地ssh。同樣,我想知道有關ssh的用例,因爲還有很多其他的選擇與桑巴,SFTP的幫助服務器之間共享數據等

您可以檢查有關如何使用scp此鏈接:scp (secure copy) to ec2 instance without password

乾杯!

1

假設keypair2.pem是私人服務器的私鑰(10.0.20。71)(如果使用AWS控制檯/ CLI/SDK創建一個密鑰對,私鑰返回)

從公共服務器:

ssh -i keypair2.pem [email protected] 

如果專用服務器是Ubuntu的機器:

ssh -i keypair2.pem [email protected] 

如果您仍然有問題,後期的輸出:

ssh -v -i keypair2.pem [email protected]