[TOC] #### 1. mac 的 ssh --- mac 的終端自帶 ssh,不過我會使用 [iterm2](https://iterm2.com) 作為 mac 終端工具 ``` ssh 服務(wù)器用戶@服務(wù)器IP地址 ``` 輸入連接命令,回車,再輸入連接命令中使用的用戶密碼即可連接上服務(wù)器。下面是連接命令: ``` # 默認(rèn)使用 22 端口連接服務(wù)器 ssh root@182.92.187.217 # 使用 -p 參數(shù)指定端口連接服務(wù)器 ssh root@182.92.187.217 -p 23 ``` 當(dāng)曾經(jīng)連接過遠(yuǎn)程服務(wù)器,后來服務(wù)器重裝系統(tǒng)了(如:阿里云服務(wù)器更換了操作系統(tǒng)),再連接就會出現(xiàn)以下錯誤 ![](https://img.itqaq.com/art/content/3d7734fc34642a87af0f9dfa095aa480.png) 解決方案 1:直接刪除 known_hosts 文件 ```bash rm -rf ~/.ssh/known_hosts ``` 解決方案 2:刪除 known_hosts 中該 IP 相關(guān)內(nèi)容 因為該文件中可能會有其他 IP 的內(nèi)容,為了不影響其他 IP 的連接,所以推薦該方式 ``` # 刪除以下內(nèi)容 47.106.206.43 ssh-ed25519 .... 47.106.206.43 ssh-rsa .... 47.106.206.43 ecdsa-sha2-nistp256 .... ``` #### 2. 使用 SSH 密鑰連接 --- 當(dāng)經(jīng)常需要連接一個服務(wù)器時,每次連接都輸入密碼就過于繁瑣了,我們可以使用 SSH 密鑰進(jìn)行免密登錄 生成 SSH 密鑰(使用 github 的開發(fā)者一般都生成過,生成過的話無需重復(fù)生成) ``` ssh-keygen ``` 運(yùn)行以下命令將 SSH 密鑰推送到服務(wù)器,推送時需要輸入服務(wù)器用戶密碼 ssh-copy-id 可以把本地主機(jī)的公鑰復(fù)制到遠(yuǎn)程主機(jī)的 authorized_keys 文件,進(jìn)而實現(xiàn)免密登錄 這個命令會在服務(wù)器上生成一個文件: `~/.ssh/authorized_keys`,文件內(nèi)容就是我們推送的 SSH 密鑰 ```bash # 命令格式 ssh-copy-id 用戶@IP地址 # 使用示例 ssh-copy-id root@192.168.1.49 ssh-copy-id root@101.132.33.24 ``` 再使用 ssh 連接服務(wù)器就可以免密連接了 ![](https://img.itqaq.com/art/content/5160168285470329c280bcc91438811c.png) #### 3. 使用配置文件連接 --- 使用 SSH 密鑰連接的方式,雖然不用每次都輸入密碼,但還是要輸入服務(wù)器的用戶名和 IP 地址,還是挺麻煩的。 這時候可以給 IP 配置一個別名,進(jìn)而簡化連接操作,創(chuàng)建文件: `~/.ssh/config`,文件內(nèi)容如下: ``` Host blog Hostname 101.132.33.24 Port 22 User root IdentityFile ~/.ssh/id_rsa ``` 使用配置的別名連接服務(wù)器,只需要使用以下指令就可以連接到服務(wù)器 ``` ssh blog ``` ![](https://img.itqaq.com/art/content/59b3a558351b51367cb78668cf0c1294.png) 當(dāng)需要連接多個服務(wù)器時,考慮到每個都要寫 Port、User,很麻煩,其實可以把這些公共的抽離出來 ``` Host blog Hostname 101.132.33.24 # 以下為抽離的配置 # Host * :這個的意思是,所有Host以下如果沒有配置的話,都走以下配置 # Port : 默認(rèn)端口為22,如果不是22端口,可以在上面輸入 Port 2222 ,自己想要的端口進(jìn)行配置 # IdentityFile : 默認(rèn)的我們的密鑰文件地址位置在哪兒(也就是我們先開始生成密鑰的地址) Host * Port 22 User root ServerAliveInterval 60 ConnectTimeout 0 TCPKeepAlive yes IdentityFile ~/.ssh/id_rsa ``` #### 4. Windows 系統(tǒng) --- 對于 Windows 系統(tǒng)用戶,如果只是連接服務(wù)器的終端,進(jìn)行簡單操作,比如: 安裝寶塔面板,可以使用 git 自帶的命令行工具 `Git Bash Here` 連接。但如果想要更多功能,還是要使用專業(yè)的軟件,如 xshell ``` ssh root@182.92.70.132 ``` 首次連接會有一個操作提示,輸入 `yes` 回車即可,然后輸入服務(wù)器用戶的密碼即可連接成功 ![](https://img.itqaq.com/art/content/f6900a9344c7269b7c527d2b146b01d2.png) #### 5. 退出 SSH 連接狀態(tài) --- 退出 SSH 連接可以使用 `exit` 命令,也可以使用快捷鍵 `control + d` ![](https://img.itqaq.com/art/content/1d5201f73efb403994fd718df8d97228.png)