Ubuntu安装及配置SSH (12.04/14.04/16.04)

本文主要介绍如何在Ubuntu (12.04/14.04/16.04)系统上安装及配置SSH 服务器以及安装及配置SSH 客户端,这样我们就可以在客户端通过密钥加密过的安全的SSH协议来访问远程的SSH 服务器。 而我们在ubuntu系统或者常用的Linux系统下,主要通过SSH协议的开源的版本OPENSSH来实现加密的远程访问,以防止远程数据的泄露。

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 是什么

OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。OpenSSH是使用SSH透过计算机网络加密通讯的实现。它是取代由SSH Communications Security所提供的商用版本的开放源代码方案。目前OpenSSH是OpenBSD的子计划。摘自百度百科

Ubuntu 安装OpenSSH 服务器端包

在ubuntu 14.04/16.04 系统下,其默认的软件源已经提供了基于SSH安全协议的开源版本OpenSSH的相关软件包。 在命令行下通过执行apt-get命令来安装OpenSSH 相关的软件包。

执行下面的命令:

$sudo apt-get install openssh-server

命令输出如下:

# apt-get install openssh-server
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
openssh-server 已经是最新版 (1:7.2p2-4ubuntu2.4)。
下列软件包是自动安装的并且现在不需要了:
java-common libappindicator1 libindicator7 linux-headers-4.10.0-28
linux-headers-4.10.0-28-generic linux-image-4.10.0-28-generic
linux-image-extra-4.10.0-28-generic
使用'apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 217 个软件包未被升级。

通过输出我们可以看到,系统在安装完成后,会默认安装OpenSSH server 软件包。

查看SSHD 服务运行状态

当OpenSSH server 软件包安装完成后,我们需要查看一下openSSH 的SSHD服务是否正常启动。

对于ubuntu 16.04 以上的版本,执行下面的命令:

#systemctl status sshd

命令输出如下:

root@devops:~# systemctl status sshd
ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enab
Active: active (running) since 二 2018-03-27 21:30:24 CST; 2 days ago
Process: 21734 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCE
Main PID: 1153 (sshd)
CGroup: /system.slice/ssh.service
└─1153 /usr/sbin/sshd -D
3月 29 22:49:15 devops systemd[1]: Reloaded OpenBSD Secure Shell server.
3月 29 22:49:15 devops sshd[1153]: Server listening on 0.0.0.0 port 22.
3月 29 22:49:15 devops sshd[1153]: Server listening on :: port 22.
3月 29 22:49:15 devops systemd[1]: Reloading OpenBSD Secure Shell server.
3月 29 22:49:15 devops sshd[1153]: Received SIGHUP; restarting.
3月 29 22:49:15 devops systemd[1]: Reloaded OpenBSD Secure Shell server.
3月 29 22:49:15 devops sshd[1153]: Server listening on 0.0.0.0 port 22.
3月 29 22:49:15 devops sshd[1153]: Server listening on :: port 22.
3月 9 22:52:16 devops sshd[23590]: Accepted password for root from 192.168.1.2
3月 29 22:52:16 devops sshd[23590]: pam_unix(sshd:session): session opened for u
lines 1-18/18 (END)

对于14.04 或者12.04 版本的ubuntu系统,执行下面的命令:

#service ssh status

Ubuntu 安装OpenSSH 客户端包

如果要让服务器也作为客户端通过ssh协议访问远程的机器,那么还需要安装SSH的客户端必需的软件包。 执行下面的命令:

$sudo apt-get install openssh-client

命令输出如下:

root@devops:~# apt-get install openssh-client
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
openssh-client 已经是最新版 (1:7.2p2-4ubuntu2.4)。
下列软件包是自动安装的并且现在不需要了:
java-common libappindicator1 libindicator7 linux-headers-4.10.0-28
linux-headers-4.10.0-28-generic linux-image-4.10.0-28-generic
linux-image-extra-4.10.0-28-generic
使用'apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 217 个软件包未被升级。

Ubuntu 通过客户机远程访问SSH服务器

假如我们的远程SSH服务器主机名为osetc.com,用户名为admin, 那么你可以在命令行下执行下面的命令来远程通过ssh来访问服务器:

#ssh admin@osetc.com

之后会要求你输入远程服务器的密码,进行验证,通过后,就可以登录远程服务器了。

停止服务器SSHD服务

执行命令:

#/etc/init.d/ssh stop

或者

#systemctl stop sshd  (对于ubuntu 16.04)

启动服务器SSH服务

执行下面的命令:

#/etc/init.d/ssh start

或者

#systemctl start sshd (对于ubuntu 16.04)

重新启动服务器的SSHD 服务

执行下面的命令:

#/etc/init.d/ssh restart

或者

#systemctl  restart sshd

Ubuntu 系统下SSH 服务器配置

对于SSH 服务器,默认的配置文件为/etc/ssh/sshd_config, 我们可以通过文本编辑器vi 或vim来进行编辑。

执行命令:

#vi /etc/ssh/sshd_config

更改SSH 服务的默认端口号

如果想更改SSH服务的默认端口(22) 为其它的端口比如222,可以更改配置文件中的下面的行:

Port 22 –》 Port 222

更改SSH服务器最大的登录尝试次数

如果需要更改客户机登录远程服务器的尝试次数,也就是说 客户机使用了错误的用户名或密码尝试登录远程服务器进行验证的次数,如果超过设定的次数,就会自动退出连接请求。 那么可以添加下面的配置行到配置文件里:

MaxAuthTries  3

 


99%的人还阅读了:

Leave a Reply