# SSH on VS Code
1.Download Visual Studio Code
---
website: https://code.visualstudio.com/<br/>
2.Download Remote-SSH<br/>
---
下載擴充Remote-SSH<br/>

3.Log In
---
出現遠端總管圖示,點擊

點擊齒輪,更新設定檔.ssh\config

<br/>
設定SSH設定檔,Host自訂,Hostname為IP,User為帳號名稱 (詳細設定詢問網管)<br/>
<br/>
設定完,點擊重新整理,點擊ssh的向下箭頭,可以看到設定的Hostname,點擊向右箭頭進行連線<br/>
<br/>
選linux之後<br/>
<br/>

輸入密碼,進行連線<br/>

<br/>
允許<br/>
<br/>
連線成功<br/>
<br/>
4.Generate Keys
---
(1) Press <win+R><br/>
(2) Open cmd<br/>
<br/>
(3) Generate keys:輸入`ssh-keygen -t rsa`,一直Enter<br/>

<br/>
(4) 產生檔案如下<br/>
<br/>
5.Log In without Password
---
(1) 在工作站建立authorized_keys檔案<br/>
Build directory .ssh: `mkdir .ssh`<br/>
cd至.ssh: `cd .ssh`<br/>
Build file authorized_keys: `touch authorized_keys`<br/>

<br/>
(2) 開啟資料夾,確定<br/>
<br/>
<br/>
(3)複製在本機的public key<br/>
<br/>
(4)貼上至authorized_keys<br/>
<br/>
(5) Modify config,新增Identityfile:private key的路徑;ForwardAgent:yes<br/>
<br/>
<font color="#f00">**特別注意**:</font> 若其他使用者或資料夾的權限過大,系統可能因此判斷對應金鑰不安全,無法免密碼登入。<br/>
解決方法: 修改.ssh和authorized_keys的權限<br/>
Modify permission: `chmod <user><group><other> <file or dicrectory>`<br/>
Check permission: `ll -d <file or directory>`<br/>
<font color="#f80">**照下圖輸入指令**:</font><br/>

<br/>
| Dec | Read | Write | Execute | Binary |
| - | - | - | - | - |
| 7 | v | v | v | 111 |
| 6 | v | v | x | 110 |
| 5 | v | x | v | 101 |
| 4 | v | x | x | 100 |
| 3 | x | v | v | 011 |
| 2 | x | v | x | 010 |
| 1 | x | x | v | 001 |
| 0 | x | x | x | 000 |
6.X Server Setting
---
(1) Download Xming<br/>
載點: https://sourceforge.net/projects/xming/<br/>

(2) Download Remote X11 (SSH for local; normal for workstation)<br/>
<br/>
(3) Modify config<br/>
<br/>
(4) 開啟Xming<br/>
開啟後,一直Next就好<br/>
<br/>
<br/>
記得要勾選 No Access Control<br/>
<br/>
(5) 即可在vscode直接開啟nWave等tools的GUI<br/>
輸入: `nWave &`
<br/>
7.Others Error
---
以下為問題和對應可能解決方法<br/>
(1)can't display:<br/>
添加Display至本地環境變數,數值為localhost:0.0<br/>
<br/>
<br/>
(2)can't handshake:<br/>
修改Remote-X11(SSH)擴充設定<br/>
<br/>
使用者的改成trusted<br/>
<br/>
遠端的將IP和Port資訊輸入至擴充設定<br/>
<br/>
遠端的同樣也需要改成trusted<br/>
<br/>
(3) nWave開啟後,視窗超出螢幕範圍,無法縮小
將其他分頁移至螢幕邊緣,進行分割畫面。

點選該X視窗,完成分割頁面
