lede 命令 啟用 ssh SSH跳板機

2021-10-11 06:47:36 字數 1673 閱讀 5663

出於安全等因素的考慮,我們一般不會把所有伺服器都設定成可 ssh 直連,而是會通過一台機器作為跳板機,跳板機就相當於大門,你想要連線其他伺服器的時候,必須要先穿過大門。先通過 ssh 登入到跳板機,再從跳板機登入到目標伺服器。

假設在某個機房中,我們用機器 a 來代表目標伺服器,該伺服器不能 ssh 直連,只能通過跳板機連線,用機器 b 來代表跳板機,我們是可以 ssh 直連跳板機的。

我們先把自己電腦上的 ssh 的 public key 拷貝到跳板機以及目標伺服器的.ssh/authorized_keys檔案裡,這樣我們理論上可以無密碼登入了。

我們嘗試:

ssh -u username@b

然後再從跳板機登入到目標伺服器

ssh -o "passwordauthentication no" username@a

引數-o "passwordauthentication no"表示不使用密碼登入

但是結果是

permission denied(publickey,password)

這是因為 ssh 的 key 登入是要 public key 和 private key 成對存在的,雖然 public key 已經拷貝到了目標機器,但是當我們已經登入到跳板機上即機器 b 上時會向機器 a 也進行 ssh 登入,而跳板機上並沒有我們自己機器的 private key。

可以如果我們把自己電腦的 private key 複製到跳板機上的話,那其他登入到跳板機上的人就可以拿到我的 private key 了,這是不安全的。

這個時候我們需要通過 ssh 的agent forwarding來解決。

eval $(ssh-agent)

ssh-add

ssh -a username@b

-a 引數表示開啟 agent forwarding

ssh username@a

這樣就可以從跳板機登入目標機器了,原因就是我們開啟了 agent forwarding。

當我們在跳板機上 ssh 登入目標機器時,目標機器會要求跳板機用對應的 ssh 的 private key 做認證,但是跳板機沒有我們自己電腦的 private key,但是又因為我們從自己的電腦 ssh 登入到跳板機的時候啟用了 agent forwarding,所以跳板機會把認證請求**給我們自己的電腦。我們自己的電腦在收到這個請求的時候,就會在 shh-agent 程序進行認證,又因為我們已經通過ssh-add命令將我們的 private key 加到了ssh-agent 中,所以認證會成功。最後我們機器把認證結果傳回給跳板機,跳板機再把結果轉回給目標機器,這樣就完成了在跳板機沒有我們的 ssh 的 private key 的情況下,還是能夠成功登入目標機器。

回到我們自己的機器上,執行命令

ssh -j username@b username@a

一條命令就可以直接登入到目標機器。

引數 -j 是用來指定跳板機的,ssh 會幫我們先登入到跳板機,然後再登入目標機器。

人類身份驗證 - segmentfault​segmentfault.com

redis 啟用命令

一 redis後端啟動 1 將redis原始碼包中的redis.conf配置檔案複製到redis bin 下 cd root redis 3.0.0 cp redis.conf usr local redis bin 2 修改redis.conf,將daemonize由 no改為yes 3 執行啟動...

啟用生成樹命令(spanning tree)

1 啟用生成樹 spanning tree vlan vlan list vlan號 2 配置交換機為根網橋 spanning tree vlan vlan list root primary 指定根網橋 secondary 備用根網橋 3 修改交換機的優先順序 spanning tree vlan...

檢視win啟用狀態的命令

檢視win啟用狀態的命令 1 鍵盤按下win r 執行輸入如下命令即可。2 win r 輸入 slmgr.vbs dlv 顯示 最為詳盡的啟用資訊,包括 啟用id 安裝id 啟用截止日期 3 win r 輸入 slmgr.vbs dli 顯示 作業系統版本 部分產品金鑰 許可證狀態 4 win r ...