ubuntu 20.04 安裝 SSH Server 實現遠程登陸

前言:SSH協議、openssh server、openssh client

SSH(安全外殼協議)

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

openssh server 與 openssh client

  • openssh server的功能主要是做爲一個服務運行在後臺,若是這個服務開啓,咱們就能夠用一些遠程鏈接工具來鏈接運行此服務的主機。
  • openssh client 它做爲鏈接運行openssh-server服務主機的客戶端工具。

在以 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

Ubuntu SSH Server 安裝、配置

一、檢查是否安裝 openssh-server

可經過如下3個命令中任何一個來檢查是否已經安裝 openssh-server:vim

dpkg -s openssh-server
apt search openssh-server
sudo /etc/init.d/ssh start

若是出現:centos

openssh-server 未安裝圖示

說明:openssh-server 未安裝,須要安裝。安全

若是出現:bash

dpkg -s openssh-server 已安裝圖示

服務器

apt search openssh-server 已安裝圖示

網絡

啓動 ssh 服務圖示

說明:openssh-server 已安裝(安裝步驟可跳過)。

ssh -V 不能用來驗證 openssh-server 是否安裝

因爲 Ubuntu 20.04 (>=16.04) 默認安裝了 ssh client,可是默認未安裝 openssh-server

當執行 ssh -V 命令顯示的版本信息其實是 ssh client 的版本信息,而非 openssh-server 版本信息,於是不能經過此命令檢查 是否已安裝 openssh-server。

ssh -V 顯示ssh client 的版本信息(非openssh-server 版本信息)

二、安裝 openssh-server

sudo apt update
sudo apt install openssh-server

三、啓動 openssh-server,接着輸入命令

sudo /etc/init.d/ssh start
# 或
sudo systemctl start ssh.service

ssh server 啓動圖示

ssh server 啓動/中止/重啓

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  # 重啓

4. 查看 openssh-server 是否已啓動

查看ssh是否啓動,若是啓動服務中有 sshd,如有,說明已經啓動.

sudo ps -e | grep ssh

查看openssh-server 啓動服務

5.ssh localhost 測試本地 openssh 服務器的運行及配置

終端輸入

ssh localhost

ssh localhost成功

ssh localhost 運行常見的錯誤

1. WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

ssh localhost 警告:遠程主機標識已更改

「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」 即:警告:遠程主機標識已更改。

緣由: 此報錯是因爲遠程的主機的公鑰發生了變化致使的。

ssh服務是經過公鑰和私鑰來進行鏈接的,它會把每一個曾經訪問過計算機或服務器的公鑰(public key),記錄在~/.ssh/known_hosts 中,當下次訪問曾經訪問過的計算機或服務器時,ssh就會覈對公鑰,若是和上次記錄的不一樣,OpenSSH會發出警告。

解決辦法: 刪除對應ip的在known_hosts相關信息。

vim vim ~/.ssh/known_hosts

若是不能肯定ip,直接將 known_hosts 中全部內容所有內容刪除,保存便可。

清空known_hosts後首次執行 ssh localhost,添加公鑰時會提醒選擇 「Are you sure you want to continue connecting (yes/no/[fingerprint])? 」,輸入 「yes」 回車便可。

清空known_hosts後首次 ssh localhost 圖示

再次執行 ssh localhost,不會有上次的提醒,直接輸入遠程登錄的帳戶的密碼便可。

再次執行 ssh localhost 無提示圖示

2. ssh: connect to host localhost port 22: Connection refused

ssh: connect to host localhost port 22: Connection refused。(不可以鏈接到本地主機端口22, 鏈接被拒絕)

這種狀況(在能夠正常上網的前提下)的緣由多是 openssh-server 未啓動或未安裝。

此時執行:sudo /etc/init.d/ssh start 若是提示「已啓動」,這時可正常執行 ssh localhost
若是提示 「找不到此文件或命令」 那麼根據前面的步驟先安裝、再啓動 openssh-server,最後執行 ssh localhost

使用 SSH 客戶端工具遠程鏈接

終端運行運行如下命令,查看 IP 地址:

# 採用 NAT 橋接網絡模式,在使用 ifconfig 查看ip前,須要執行如下命令,
# 用 dhcp 服務獲取 ip 地址
sudo dhclient -v
# 查看 ip 地址
ifconfig

sudo dhclient -v 獲取 ip 地址

ifconfig 查看 ip 地址

SSH 客戶端 可使用 VMWare 自帶工具 或 Xshell. 將 上面獲得的 ip 地址在 SSH 客戶端 配置便可。

  1. Xshell 遠程鏈接 Ubuntu 20.04
  2. VMWare 自帶 SSH 客戶端 遠程鏈接 Ubuntu 20.04

openssh-server 的完全卸載

# 卸載並刪除配置文件
sudo apt-get purge openssh-server

參考

  1. ubuntu16.04下安裝openssh-server報依賴錯誤的解決方法
  2. SSL、SSH、OpenSSH、OpenSSL 區別
相關文章
相關標籤/搜索