1. 程式人生 > 其它 >ssh跳板機及vscode,xshell隧道的全方位配置

ssh跳板機及vscode,xshell隧道的全方位配置

ssh跳板機及vscode,xshell隧道的全方位配置

公鑰與私鑰使用場景:

  1. 私鑰用來進行解密和簽名,是給自己用的。
  2. 公鑰由本人公開,用於加密和驗證簽名,是給別人用的。
  3. 當該使用者傳送訊息時,用私鑰簽名訊息,別人用他給的公鑰驗證簽名,可以保證該資訊是由他傳送的。當該使用者接受訊息時,別人用他的公鑰加密,他用私鑰解密,可以保證該資訊只能由他接收到。

簽名場景參考這裡

ssh

ssh公私鑰連線原理

refer:An Illustrated Guide to SSH Agent Forwarding (unixwiz.net)Public Key Access部分

相關檔案

  • client端存放私鑰id_rsa

    檔案(檔名不能變),也就是說一個client只有一個私鑰就可以

    • windows一般存放在C:/Users/你的使用者名稱/.ssh
    • linux存放在/home/你的使用者名稱/.ssh
  • server端存放authorized_keys,裡面寫入了所有client端的公鑰,即生成的id_rsa.pub

步驟

  1. 使用ssh-keygen -t rsa生成金鑰
  • 其中-t是指定加密演算法
  • 中間會詢問儲存金鑰地址,為避免衝突,可以改個名字,但是後續需要把私鑰改成id_rsa才能用
  • 然後詢問passphrase這個不填也可以

passphrase是為了保護私鑰的安全. 如果設定了passphrase, 當載入私鑰時需要輸入, 否則不需要輸入

  1. 把公鑰放到server兩種方法:
  • ssh-copy-id -i pub_key_file username@remotemachine
  • 或者新建/home/使用者名稱/.ssh/authorized_keys,然後把id_rsa.pub複製到目錄下,輸入命令cat id_rsa.pub>>authorized_keys

Vscode免金鑰登入

將上面步驟完成後,再配置ssh configuration file

Host JumpMachine             
    HostName XXX.XXX.XXX.XXX 
    Port XXX                 
    User root                
    IdenytityFIle C:\Users\你的使用者名稱\.ssh\id_rsa
 
Host TargetMachine           
    HostName XXX.XXX.XXX.XXX 
    Port XXX                 
    User root                
    IdenytityFIle C:\Users\你的使用者名稱\.ssh\id_rsa #用的還是自己電腦的私鑰,不是跳板機的
    ProxyCommand ssh -W %h:%p JumpMachine

Xshell隧道

只有使用隧道才能顯示目標機的xftp資料夾,否則就還是跳板機的資料夾

原理就是指定跳板機的一個使用者埠隧道連線目標機的ssh服務埠

以下參考這篇部落格:

運維管理之隧道對映訪問內網伺服器,通過xshell,xftp視覺化管理伺服器檔案_U.R.M.L-CSDN部落格

簡要步驟:

  1. 新建新增跳板機會話
  1. 在跳板機屬性裡新增隧道轉移規則

偵聽埠選個沒人用的就可以(1024-65535為使用者埠)

  1. 新建新增目標機會話

其中使用者身份驗證使用password還是public key都ok