SSH(Secure Shell)使用加密方式傳輸數據,相比其他使用明文傳輸的遠程登錄方式具有更高的安全性。
ssh允許使用兩種驗證方式登錄:密碼驗證,密鑰驗證
系統版本:Ubuntu 18.04.2LTS
openssh-server 版本:1:7.6p1-4ubuntu0.3
密碼驗證
-
服務端配置(全局配置文件:/etc/ssh/sshd_config)
-
安裝ssh:
sudo apt install openssh-server
-
更改全局配置文件sshd_config :
nano /etc/ssh/sshd_config
-
端口:去掉
Port 22
一項前的#
,若使用其他端口,把 22 更改為相應端口。 -
密碼驗證:去掉
PasswordAuthentication yes
一項前的#
,並確保此項是yes而不是no。 -
其他選項(可選):
-
ListenAddress 0.0.0.0:定義服務端綁定的ip,默認綁定所有可用ip
-
PermitRootLogin prohibit-password:允許root用戶登錄
-
-
-
檢查sshd服務是否已啟動:
systemctl status sshd
,若未啟動則:systemctl start sshd
-
開機啟動:
systemctl enable sshd
-
查看主機地址:
ip address
,找到相應的網卡,記下inet 后的ip
-
-
客戶端配置(配置文件:~/.ssh/config):
-
連接至服務器:
ssh -p port user@server-address
,server-address即上面記下的ip,- p 選項用於指定端口 -
客戶端可以在配置文件中存儲常用選項和常用主機:
~/.ssh/config
# global options
User user
# host-specific options
Host myserver
HostName server-address
Port port進行了如上的配置后,以下命令是等效的
$ ssh -p port user@server-address
$ ssh myserver
-
密鑰驗證
-
服務端配置
-
安裝ssh:
sudo apt install openssh-server
-
更改全局配置文件sshd_config :
nano /etc/ssh/sshd_config
-
端口:去掉
Port 22
一項前的#
,若使用其他端口,把 22 更改為相應端口。 -
公鑰驗證:去掉
PubkeyAuthentication yes
一項前的#
,並確保此項是yes而不是no。 -
啟用公鑰文件:去掉
AuthorizedKeysFile
一項前的#
-
-
創建公鑰文件:
touch ~/.ssh/authorized_keys
,注意檢查該文件的權限是否為600。 -
其余步驟同上。
-
-
客戶端配置
-
生成密鑰:
ssh-keygen -t rsa
注:當要求輸入文件名時(Enter file in which to save the key)請使用絕對路徑,否則密鑰將生成在當前目錄,若使用默認路徑則直接回車
-
到相應文件夾找到xxx.pub, xxx兩個文件,xxx放置於~/.ssh/文件夾下,xxx.pub上傳到服務端,並將其中內容追加到服務端的公鑰文件中,(永遠只把公鑰交給服務器)
如:
cat xxx.pub >> ~/.ssh/authorized_keys
-
使用
ssh -p port user@server-address
命令登錄即可
-
關於WSL的補充:
-
端口一定要更改,因為22端口與Windows的默認ssh服務沖突,需更改為其他端口
參考鏈接