第一章:SSH服务
1.1 SSH是什么?
SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。SSH 为建立在应用层和传输层基础上的安全协议。
网络
SSH客户端<------------------------------>SSH服务端
数据传输是加密的,可以防止信息泄漏
数据传输是压缩的,可以提高传输速度
1.2 SSH客户端和服务端
-
SSH客户端: 常见的SSH客户端软件有Putty、Xshell、CRT、MobaXterm、FinalShell。
-
SSH服务端: OpenSSH 是实现SSH协议的开源软件项目,适用于各种UNIX、Linux 操作系统。
1.3 CentOS 7中的SSH
CentOS 7系统默认已安装openssh相关软件包,并将sshd服务添加为开机自启动。执行以下命令即可启动sshd服务:
systemctl start sshd
-
默认端口: sshd 服务默认使用的是TCP的22端口。
-
安全协议版本: 默认使用的是sshv2,sshv1 存在漏洞。
-
配置文件: sshd服务的默认配置文件是
/etc/ssh/sshd_config
。
1.4 SSH配置文件
-
ssh_config: 为客户端配置文件,设置与客户端相关的应用可通过此文件实现。
-
sshd_config: 为服务器端配置文件,设置与服务端相关的应用可通过此文件实现。
# 客户端配置文件路径
/etc/ssh/ssh_config
# 服务端配置文件路径
/etc/ssh/sshd_config
1.5 SSH服务功能
SSH服务端主要包括两个服务功能:SSH远程连接和SFTP服务。
1.6 SSH的作用
SSHD 服务使用 SSH 协议可以用来进行远程控制,或在计算机之间传送文件。相比于Telnet,SSH更加安全,因为Telnet使用明文传输,SSH则是加密传输。
1.7 远程管理的重要性
远程管理Linux系统基本上都要使用到SSH,原因很简单:Telnet、FTP等传输方式使用明文传送用户认证信息,本质上是不安全的,存在被网络窃听的危险。SSH(Secure Shell)目前较可靠,是专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题,通过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。
1.8 OpenSSH常用配置文件
OpenSSH 常用配置文件有两个:
-
ssh_config: 为客户端配置文件,设置与客户端相关的应用可通过此文件实现。
-
sshd_config: 为服务器端配置文件,设置与服务端相关的应用可通过此文件实现。
# 客户端配置文件路径
/etc/ssh/ssh_config
# 服务端配置文件路径
/etc/ssh/sshd_config
1.9 常用命令和路径
-
查看SSH版本:
ssh -V
-
服务名称:
sshd
-
服务端主程序:
/usr/sbin/sshd
-
服务端配置文件:
/etc/ssh/sshd_config
二、SSH远程登录方式
2.1 登录方法一
使用以下命令通过SSH远程登录到另一台Linux主机:
ssh [远程主机用户名]@[远程服务器主机名或IP地址] -p port
如果当前登录用户是 root
,并且连接到另一台主机时也是使用 root
用户,可以直接使用 ssh IP
,默认端口即可。如果端口不是默认的,需要使用 -p
指定端口。
例如,使用默认端口:
ssh [email protected]
使用自定义端口:
ssh [email protected] -p 2222