分享

ubuntu 20.04 安装 SSH Server 实现远程登录

 小世界的野孩子 2022-05-29 发布于北京

前言: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。

openssh server 与 openssh client

  • openssh server的功能主要是作为一个服务运行在后台,如果这个服务开启,我们就可以用一些远程连接工具来连接运行此服务的主机。

  • openssh client 它作为连接运行openssh-server服务主机的客户端工具。

在以 Linux 内核发行版操作系统上,要实现远程连接,需要安装 openssh-server 软件包,并作为服务在后台一直运行,而 openssh-server 软件包依赖于 openssh-clients.

在 centos 系统安装 openssh-server 步骤

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)

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 安装、配置

1、检查是否安装 openssh-server

可通过以下3个命令中任何一个来检查是否已经安装 openssh-server:

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

如果出现:

openssh-server 未安装图示

说明:openssh-server 未安装,需要安装。

如果出现:

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 版本信息)

2、安装 openssh-server

sudo apt update
sudo apt install openssh-server

3、启动 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 区别

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多