遠端伺服器連線(金鑰驗證,跳板機)

青城墨白發表於2022-04-03

伺服器遠端連線

天下大事 必作於細

rsa金鑰配置

本地裝置

利用git生成一對rsa公私金鑰 keygen
windows的話,預設生成目錄在 C:\Users\使用者名稱.ssh
id_rsa為私鑰檔案
id_rsa.pub為公鑰檔案
私鑰檔案為你的登入的身份證,登入時選擇這個檔案即可,具體見下文。
公鑰檔案需要放到伺服器authorized_keys當中

遠端伺服器

  1. 進入相應使用者的.ssh資料夾, cd ~/.ssh即可
    裡面應該有authorized_keys、id_rsa、id_rsa.pub、know_hosts等是個檔案
    我們只需要關心authorized_keys這個檔案即可。
  2. 開啟authorized_keys檔案,把剛剛本地生成的公鑰檔案的內容貼進來即可。
  3. 確保服務上允許RSA金鑰登入,這裡需要root許可權
sudo vim /etc/ssh/sshd_config
//檢視檔案中的這兩項是否都是yes,第一項是允許RSA金鑰登入,第二項是允許公鑰認證
RSAAuthentication yes
PubkeyAuthentication yes

這樣,金鑰配置就完成了。

當然,有一個問題,就是你的伺服器下面並不存在authorized_keys這個檔案,甚至連.ssh資料夾都沒有
那麼,你自己建.ssh資料夾和authorized_keys檔案然後再做一樣操作即可,不過需要注意,資料夾和檔案的許可權是有要求的:

chmod 700 .ssh
chmod 644 authorized_keys

下面,根據平臺不同分成mobaxterm和vscode對本地設定私鑰以及跳板機進行說明

mobaxterm

遠端連線

圖1

跳板機

為什麼需要跳板機,這是為了實現從外網網址跳到內網伺服器的需求。
圖2

vscode

遠端連線

圖3

Host xxxxx
    HostName xx.xx.xx.xx
    User xxx
    Port xx
    IdentityFile 私鑰路徑

Host為伺服器名稱,可以隨便起
HostName是伺服器ip地址
User 使用者名稱
Port 埠號
IdentityFile 指明私鑰檔案路徑

跳板機

為什麼需要跳板機,這是為了實現從外網網址跳到內網伺服器的需求。
圖3

Host public_net
    HostName xx.xx.xx.xx
    User xxx
    Port xx
    IdentityFile 私鑰路徑

Host inter_net
    HostName xx.xx.xx.xx
    User xxx
    Port xx
    IdentityFile 私鑰路徑
    ProxyCommand ssh -W %h:%p public_net

ProxyCommand 能夠指明通過另一個ip做跳板,其中ssh需要絕對執行路徑,如C:\Windows\System32\OpenSSH\ssh.exe

相關文章