--- tags: 系統套件, ubuntu --- ###### tags: `Ubuntu` ###### 撰寫日期:2020/04/08 ###### 作者:Sam # (待補)利用VScode Remote-SSH套件連線遠端Linux開發 {%hackmd BJrTq20hE %} 1. 在Linux上安裝openssh-server並設定可允許root登入(通常此服務已安裝在系統上) ```bash sudo apt-get install openssh-server sudo systemctl start ssh ``` 設定 ssh_config 內容 找到 PermitRootLogin 設定參數為 yes => "PermitRootLogin yes" ```bash sudo vim /etc/ssh/sshd_config 'PermitRootLogin yes' => 'PermitRootLogin yes' ``` 重啟 SSH 服務 ```bash sudo systemctl restart ssh ``` 2. 建立SSH連線金鑰 (不須密碼登入SSH,VScode裡只能利用此種方式連線) ```bash ssh-keygen ``` 參考連結:https://www.footmark.info/linux/centos/windows-ssh-nopassword-linux/ 範例: ```bash Generating public/private rsa key pair. Enter file in which to save the key (/home/jacky/.ssh/id_rsa): # 儲存金鑰路徑和檔名,使用預設直接 Enter Created directory '/home/jacky/.ssh'. # 產生 .ssh 目錄 Enter passphrase (empty for no passphrase): # 不建立密碼,直接 Enter Enter same passphrase again: # 密碼確認,直接 Enter Your identification has been saved in /home/jacky/.ssh/id_rsa. # Private Key 存放路徑 Your public key has been saved in /home/jacky/.ssh/id_rsa.pub. # Public Key 存放路徑 The key fingerprint is: SHA256:P9W8LMj/6qQDHBdGFTwywEMA+6NXjf4XzNbPgk0///U jacky@mes.xxx.com.tw The key's randomart image is: +---[RSA 2048]----+ | ...+oo.oo. | | . o = o | | . o + . | | . .o. o | | o.So.o..o | | . +oo o=.o. | | . . ..=.o=o+.| | . ..=o.o.*| | o++o..E| +----[SHA256]-----+ ``` Public Key 儲放的路徑與檔名必須依據 /etc/ssh/sshd_config 內的 AuthorizedKeysFile 定義來設定 例: ```bash AuthorizedKeysFile .ssh/authorized_keys ``` 並依 /etc/ssh/sshd_config 設定檔更改 Public Key 檔名 ```bash ~/.ssh/id_rsa.pub => ~/.ssh/authorized_keys ``` ### Windows 10 SSH 連線 (Client) 1. 安裝 OpenSSH 設定->選用功能->新增功能->OpenSSH用戶端 ![](https://i.imgur.com/GlusMJ0.png) ![](https://i.imgur.com/4nzLDXg.png) 2. 在VScode上安裝 Remote-SSH 3. 第一次在Windows連線SSH 首次在「Windows 命令提示字元」使用 ssh 成功連結 Linux OpenSSH Server 後,並輸入密碼登入,會自動在使用者家目錄下產生 .ssh/ 的目錄。 ```PowerShall 例: ssh -p 22 user@192.168.10.1 ``` 4. 加入 Private Key 從linux /root/.ssh 中取得id_rsa檔案並加入至windows使用者家目錄下產生 .ssh/ 的目錄,,重新連線ssh時,即可不必運用密碼。 5. 打開VScode 設定config,就可成功連線。 ![](https://i.imgur.com/5qvSskL.png) ### 未整理內容 1. 透過公開金鑰加密 (Public-key cryptography) 或稱「非對稱金鑰加密」的兩把加解密鑰匙 Public Key (公鑰) 和 Private Key (私鑰),取代 Client 使用 SSH (Secure Shell,安全殼協議) 協定連結 Server 登入時必須輸入驗證密碼的動作: 2. Public Key:存放於 Server,路徑與檔名必須依據 /etc/ssh/sshd_config 內的 AuthorizedKeysFile 定義來設定。 3. Private Key:存放於 Client,用來解密 Server 的 Public Key,因此只要誰擁有 Private Key 就能夠 SSH 連結且免密碼直接登入 Server,所以 Private Key 非常重要,不可外流。