通过putty和 winscp操作aws机器笔记
最近在生產aws環境部署了支持http3的nginx集群(nginx+consul+upsync)。整個部署過程使用putty操作虛擬機,通過winscp上傳下載文件。
寫了一些操作筆記以及記錄了我自己碰到的幾個問題
PS:
由于是生產環境,所以所有的服務機器都是通過堡壘機登錄的,并且設置了密鑰
下面提到的服務器地址都是不能直接通過ssh命令直接連接的應用服務器地址
WINSCP
winscp的操作相對putty來說比較簡單
然后點擊確認和登錄按鈕就可以看到如下連接成功的提示
PUTTY
putty通過密鑰登錄內網機器
在aws兩臺機器,一臺是可以是堡壘機,可以在任何點通過ssh命令訪問,一臺是內網機器,只能通過堡壘機使用SSH命令連接,其安全組配置如下:
由于要使用密鑰進行登陸,需要先保存私鑰到本地(如果是pem文件需要先通過puttygen轉換成ppk文件)
1.將pem轉化成ppk文件
打開puttygen并點擊load,選擇自己電腦上的pem公鑰并打開,就可以看到如下圖所示的導入成功的消息,然后點擊保存私鑰的按鈕,就可以得到對應的ppk文件
由于兩臺機器的登陸都需要私鑰,而私鑰只是存儲在我本地,所以通過Pageant來保存私鑰。
Pageant是PuTTY身份驗證代理。 它可以私鑰保存在內存中,以便我們可以在連接到服務器時使用它們。
2.添加私鑰到Pageant
3. putty連接堡壘機
4.登陸堡壘機
通過ssh命令連接內網機器(aws上Red Hat的實例的默認登陸用戶都是ec2-user)
putty做端口映射
在搭建nginx+consul+upsync集群的時候,為了安全性,所有的機器都僅可以通過堡壘機訪問,consul集群通過私有子網來創建實例。這樣一來,我們也不能直接通過consul服務端的ip+端口訪問器web界面了,解決方案有三種:
- 1.通過nginx映射到外網,然后訪問nginx的時候做登陸驗證
- 2.使用consul 自己的ACL機制,設置token才可以訪問 比較麻煩
- 3.通過putty的ssh隧道,在登陸堡壘機的時候做端口映射,先給與堡壘機訪問consul ui的權限,然后通過端口映射到本地
最終我選擇了第三種,既保證了安全性,配置起來也很簡單,使用putty 登陸堡壘機就可以訪問consul的頁面
consul服務器ip:172.33.63.50,登陸后安裝并啟動consul
在本地通過127.0.0.1:8500端口就可以訪問了— 注意是映射到的是本地的端口
通過SSH命令進行私鑰轉發
按照上述操作可以使用putty連接內網服務器,不過每次都需要輸入ssh ec2-user@ip命令來連接服務器,也比較麻煩,查閱了下看看是否有其他更簡單的方式來連接
其中一個辦法就是把命令保存成shell文件,這樣在使用的時候就會方便些,不需要再去看對應服務的IP了
思路也是一樣的,先是通過ssh-agent 管理私鑰;然后轉發私鑰來登陸內網服務器
1.通過ssh-add命令添加私鑰
執行ssh-add時如果出現"Could not open a connection to your authentication agent"錯誤,則執行ssh-agent bash命令
通過ssh-add -l命令我們可以看到對應的私鑰已經被加入了
2.登陸內網服務器
ssh ec2-user@172.33.63.50 -p 22 -o ProxyCommand='ssh -p 22 ec2-user@54.238.43.140 -W %h:%p'
這條命令的意思是,我使用ec2-user用戶,來經過堡壘機的認證,但是我登陸內網服務器則是使用ec2-user用戶登錄。前面的是目標服務器的信息,ProxyCommand里的是堡壘機的信息
為了便于簡單,可以把上述信息寫到配置文件~/.ssh/config里邊
這樣以后想要連接對應的服務器只要使用ssh + host 就可以了
不過通過ssh-add命令添加的私鑰只要關閉命令臺就會失效了,每次都需要重新通過ssh-add命令添加一下
總結
以上是生活随笔為你收集整理的通过putty和 winscp操作aws机器笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AWS 用户指南笔记
- 下一篇: QUIC实战(一) 通过Quiche部署