SSH 的安裝與設定
SSH 的安裝與設定
前言
SSH(Secure Shell)是一個在應用層和傳輸層上的資料傳輸加密的協定。所以傳送出去的封包都是經過加密的,即使被擷取,也需要很大的功夫才能解開,比較安全。此外,SSH也是一個會壓縮的協定,因此可以節省頻寬、加速傳遞資料等。不只如此,SSH 不只可以達到 Telnet 的遠端連線功能,還可以提供類似FTP、但較安全的 sFTP 功能(FTP 也是明碼)....等,許多應用。
安裝SSH-Client
如果你只是想登入別的機器的 SSH 只需要安裝 openssh-client(ubuntu有默認安裝),如果要使本機開放SSH服務就需要安裝openssh-server。
查看當前的ubuntu是否安裝了ssh 服務。
- $dpkg -l|grep ssh
更新系統套件
- $sudo apt update -y
安裝 openssh-client
ubuntu 通常會默認安裝 openssh-client,若無則使用以下指令安裝:
- $sudo apt install -y ssh 或是 $sudo apt install -y openssh-client
安裝 openssh-server
若要讓其他電腦連線到你的 ubuntu 系統就必須安裝 openssh-server 服務,以下指令安裝:- $sudo apt install -y ssh 或是 $sudo apt install -y openssh-server
查看SSH有無被開啟
安裝完SSH套件後,一般來說會自動啟用,可以使用以下指令來檢查SSH的啟動狀況:
- $dpkg -l | grep ssh 或是
- $netstat -a|grep ssh
手動開啟與關閉SSH
如果SSH沒有被開啟,可以使用以下指令來開啟SSH:
- $sudo service ssh start
關閉SSH:
- $sudo service ssh stop
重啟SSH:
- $sudo service ssh restart
用SSH連線到別台裝置
- $ssh username@hostname
- username是遠端裝置的登入帳號,hostname是遠端裝置的網路位址(網址或是IP)。
- 例如:ssh magiclen@192.168.1.107
如何產生SSH金鑰?
產生專屬於自己的SSH金鑰,讓SSH登入不必輸入帳號密碼,使用起來更方便!
在Linux系統下,每個使用者都可以擁有自己的SSH金鑰,金鑰將會以檔案的形式存放在家目錄 home/ 中的「.ssh」目錄下,常使用RSA加密演算法來生成金鑰,檔名預設為「id_rsa」。在產生自己的RSA SSH金鑰前,可以先到這個目錄下查看是否已經有此檔案存在,再決定是否要產生。
產生SSH金鑰可以直接在終端機下輸入以下指令:
- $ssh-keygen
- 產生金鑰時,終端機上會顯示下列問題。如果直接按Enter跳過,就是使用預設值。
- Enter file in which to save the key:輸入金鑰儲存的檔名,預設應該會在家目錄中的「.ssh」目錄下,檔名是「id_rsa」。
- Enter passphrase:金鑰的密碼,預設是沒有密碼的,有必要的話再設定。
- Enter same passphrase again:再重複一次Enter passphrase的設定,確保設定無誤。
將SSH金鑰加入SSH伺服器
公開金鑰交給SSH伺服器最簡單的作法就是使用「ssh-copy-id」指令,直接將公鑰複製給連線的SSH伺服器。指令用法和「ssh」指令差不多,如下:
- $ssh-copy-id username@hostname
- username是遠端裝置的登入帳號,hostname是遠端裝置的網路位址(網址或是IP)。
- 例如:ssh-copy-id magiclen@192.168.1.103
接著再輸入遠端裝置的帳號登入密碼,完成登入後,便可以將公鑰傳送給遠端的SSH伺服器來儲存。
之後再使用「ssh」指令登入該裝置的帳號的話,就不必再帳號登入輸入密碼了!
登出SSH
- $exit
手機板SSH
- 推薦 termius
- 此工具支援MAC以及windows 且適用於桌面版以及移動版,重點還免費。
- 參考: [Linux]跨平台SSH客戶端工具-Termius
- Android 上有一版也不錯 JuiceSSH
SSH-Server
停用SSH伺服器的密碼驗證,只允許金鑰認證:
在 Linux 伺服器的部份,如果要提高安全性,可以在伺服器上的 /etc/ssh/sshd_config 中修改以下的設定,停用密碼認證的登入方式,只允許金鑰認證:
- PasswordAuthentication no
- PubkeyAuthentication yes
- $/etc/init.d/sshd restart
SSH-Server for Windows
參考資料
特色、摘要,Feature、Summary:
關鍵字、標籤,Keyword、Tag:
- Linux,Remote-Control,Ubuntu,

留言
張貼留言
Aron阿龍,謝謝您的留言互動!