SSH 爲 Secure Shell 的縮寫,由 IETF 的網絡小組(Network Working Group)所制定;SSH 爲創建在應用層基礎上的安全協議。SSH 是目前較可靠,專爲遠程登陸會話和其餘網絡服務提供安全性的協議。利用 SSH 協議能夠有效防止遠程管理過程當中的信息泄露問題。SSH最初是UNIX系統上的一個程序,後來又迅速擴展到其餘操做平臺。SSH在正確使用時可彌補網絡中的漏洞。SSH客戶端適用於多種平臺。幾乎全部UNIX平臺—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其餘平臺,均可運行SSH。html
在以 Linux 內核發行版操做系統上,要實現遠程鏈接,須要安裝 openssh-server 軟件包,並做爲服務在後臺一直運行,而 openssh-server 軟件包依賴於 openssh-clients.git
在 centos 系統安裝 openssh-server 步驟shell
yum install -y openssh yum install openssh-clients yum install -y openssh-server # centos 7 啓動 openssh-server systemctl start sshd.services # centos 6 啓動 openssh-server # /etc/init.d/sshd start
在 ubuntu 中安裝 openssh-server 步驟 (ubuntu 默認安裝openssh-clients)ubuntu
sudo apt update sudo apt install openssh-server # 啓動 openssh-server sudo /etc/init.d/ssh start # 或 # sudo systemctl start ssh.service # 或 # sudo service ssh start
可經過如下3個命令中任何一個來檢查是否已經安裝 openssh-server:vim
dpkg -s openssh-server apt search openssh-server sudo /etc/init.d/ssh start
若是出現:centos
說明:openssh-server 未安裝,須要安裝。安全
若是出現:bash
或服務器
或網絡
說明:openssh-server 已安裝(安裝步驟可跳過)。
因爲 Ubuntu 20.04 (>=16.04) 默認安裝了 ssh client,可是默認未安裝 openssh-server。
當執行 ssh -V
命令顯示的版本信息其實是 ssh client 的版本信息,而非 openssh-server 版本信息,於是不能經過此命令檢查 是否已安裝 openssh-server。
sudo apt update sudo apt install openssh-server
sudo /etc/init.d/ssh start # 或 sudo systemctl start ssh.service
sudo /etc/init.d/ssh start # 啓動 sudo /etc/init.d/ssh stop # 中止 sudo /etc/init.d/ssh restart # 重啓
或
sudo systemctl start ssh.service # 啓動 sudo systemctl stop ssh.service # 中止 sudo systemctl restart ssh.service # 重啓
或
sudo service ssh start # 啓動 sudo service ssh stop # 中止 sudo service ssh restart # 重啓
查看ssh是否啓動,若是啓動服務中有 sshd
,如有,說明已經啓動.
sudo ps -e | grep ssh
終端輸入
ssh localhost
「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」 即:警告:遠程主機標識已更改。
緣由: 此報錯是因爲遠程的主機的公鑰發生了變化致使的。
ssh服務是經過公鑰和私鑰來進行鏈接的,它會把每一個曾經訪問過計算機或服務器的公鑰(public key),記錄在~/.ssh/known_hosts 中,當下次訪問曾經訪問過的計算機或服務器時,ssh就會覈對公鑰,若是和上次記錄的不一樣,OpenSSH會發出警告。
解決辦法: 刪除對應ip的在known_hosts相關信息。
若是不能肯定ip,直接將 known_hosts 中全部內容所有內容刪除,保存便可。
清空known_hosts後首次執行 ssh localhost
,添加公鑰時會提醒選擇 「Are you sure you want to continue connecting (yes/no/[fingerprint])? 」,輸入 「yes」 回車便可。
再次執行 ssh localhost
,不會有上次的提醒,直接輸入遠程登錄的帳戶的密碼便可。
ssh: connect to host localhost port 22: Connection refused。(不可以鏈接到本地主機端口22, 鏈接被拒絕)
這種狀況(在能夠正常上網的前提下)的緣由多是 openssh-server 未啓動或未安裝。
此時執行:sudo /etc/init.d/ssh start
若是提示「已啓動」,這時可正常執行 ssh localhost
。
若是提示 「找不到此文件或命令」 那麼根據前面的步驟先安裝、再啓動 openssh-server,最後執行 ssh localhost
。
終端運行運行如下命令,查看 IP 地址:
# 採用 NAT 橋接網絡模式,在使用 ifconfig 查看ip前,須要執行如下命令, # 用 dhcp 服務獲取 ip 地址 sudo dhclient -v # 查看 ip 地址 ifconfig
SSH 客戶端 可使用 VMWare 自帶工具 或 Xshell. 將 上面獲得的 ip 地址在 SSH 客戶端 配置便可。
# 卸載並刪除配置文件 sudo apt-get purge openssh-server