---
# System prepended metadata

title: Set Open SSH and Use VScode connect to RHEL  2022-10-27
tags: [Remote SSH, Web server, Open SSH, 後端心得, Back end]

---

# Set Open SSH and Use VScode connect to RHEL  2022-10-27  
###### tags: `Open SSH` `Remote SSH` `Web server` `Back end` `後端心得`  

---

## 先參考微軟教學並使用 PowerShell 安裝 Open SSH   

說明及教學:   

https://learn.microsoft.com/zh-tw/windows-server/administration/openssh/openssh_install_firstuse   

### 1. 以系統管理員的身分執行 PowerShell 和以下指令:   

在 VScode 輸入指令來開啟系統管理員身分:   

> start-process powershell -verb runas


並且執行:   
> Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

尚未安裝的話會回傳出:   

```
Name  : OpenSSH.Client~~~~0.0.1.0
State : Installed

Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent
```

### 2. 然後安裝伺服器及用戶端元件   

```
# Install the OpenSSH Client
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

# Install the OpenSSH Server
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
```

兩個應該會回傳以下輸出:   
```
Path          :
Online        : True
RestartNeeded : False
```

---

## 先參考微軟教學並啟動及設定 OpenSSH 伺服器   

一樣以系統管理員身分開啟 PowerShell   
並且執行:  
```
# Start the sshd service
Start-Service sshd

# OPTIONAL but recommended:
Set-Service -Name sshd -StartupType 'Automatic'

# Confirm the Firewall rule is configured. It should be created automatically by setup. Run the following to verify
if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) {
    Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..."
    New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
} else {
    Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists."
}
```

成功的話接著進行連線 OpenSSH Server   

## 進行連線 OpenSSH Server   

一樣以系統管理員身分開啟 PowerShell   
並且執行:  
```
ssh root@"內網的位址"
```

成功後應該可以進入機器~   

![](https://i.imgur.com/yaPEQDU.png)   


其他教學:   

https://hackmd.io/@Chieh997/VScodeSSH   
https://hackmd.io/@brick9450/vscode-remote   
https://ithelp.ithome.com.tw/articles/10245726   

---

## 接著在 VScode 內安裝套件 Remote-SSH   

安裝這個 Remote - SSH 套件 ↓   
![](https://i.imgur.com/eBk667y.png)   


安裝 Extension 後會出現兩個 extension:  

**Remote - SSH**   
**Remote - SSH: Editing Configuration**    

接著按照 Extension 套件的說明, 按下 F1 開始設定   
假如你 `C:\Users\user\.ssh` (通常 .ssh 會產生在這) 內 `.ssh` 內的 `config` 檔案 有設定錯誤 或是 user 被預設為 `user@'內網位址'` 可以試著在 config 內設定, 或是刪除 config, 例如:   
```
Host 192.168.66.xx
  HostName 192.168.66.xx
```
↑ 可以看到缺了 User  

接著, 這是 config 內設定好的樣子    
```
Host 192.168.66.xx
  HostName 192.168.66.xx
  User root
```

----

## 開始在 VScode 內修改   

可以選擇在當前視窗或是開一個新的視窗來進行遠端連線   
![](https://i.imgur.com/oaE9AjB.png)   


接著會要你選你遠端的平台, 如果是 Linux 就選 Linux   
同時確認指紋 (finger print), 並按下 continue   
輸入密碼後進入~   

成功後可能會跳一些套件版本不一致的提示, 因為本機與 Linux 虛擬機使用的有落差, 這時要排除   

![](https://i.imgur.com/utoDYh4.png)   


然後跳提示你選擇的 Linux 作為 remote 平台, 這會被保存在 Remote - SSH Extension 的擴充套件中, 之後如果有要變更可以來套件的設定變更   

![](https://i.imgur.com/xvrkZyo.png)   

---

## 這時候你可以使用 terminal 去使用指令, 但~   

這時 Remote Explorer 的平台內會沒有東西, 但你只能使用 Terminal 去作指令輸入~   

如果要用到類似 Window OS 或 MobaXterm 這種有視覺化呈現 "操作資料夾" 的 UI 的話   

對著你的 SSH Targets 使用右鍵~   

> ![](https://i.imgur.com/EBDGNT6.png)   

↑ 會長得像這樣   

呈現熟悉的視覺化資料夾介面~~~   

