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
  • 一旦vscode server被kill后無法登錄:

Resolver error: Error: The VS Code Server failed to start
解決方案:
打開VS Code菜單"View"->“Command Palatte”->“Kill VS Code Server on Host”
選擇出問題的遠程服務器殺掉那個上面的VS Code server。然后重新嘗試登陸

Xshell隧道

場景:

跳板機和目標應用服務器在同一局域網下

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

原理就是指定跳板機的一個用戶端口隧道連接目標機的ssh服務端口

以下參考這篇博客:

運維管理之隧道映射訪問內網服務器,通過xshell,xftp可視化管理服務器文件_U.R.M.L-CSDN博客

簡要步驟:

  1. 新建添加跳板機會話

  1. 在跳板機屬性里添加隧道轉移規則

偵聽端口選個沒人用的就可以(1024-65535為用戶端口)

  1. 新建添加目標機會話

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM