Linux SSH基础

1 简介

SSH,Secure Shell,安全外壳。

SSH是一个协议。安全的网络协议,会加密传输数据;比较ftp、telnet更加安全。

SSH是一个服务。Linux实现SSH协议的服务也叫SSH。

本节介绍SSH服务的使用。


2 服务器客户端

SSH网络服务分为两部分:服务端与客户端。

CentOS7默认安装了SSH的服务端与客户端。


查看安装程序

rpm -qa | grep ssh

img

openssh-server为服务端安装程序;openssh-clients为客户端安装程序。


服务端程序名

服务端程序名为sshd,可查看服务端进程与端口

netstat -atnp | grep sshd

img

后台服务进程端口为22。

LISTEN表示后台服务正在监听;

ESTABLISTHED表示当前有客户端正在连接,当前有两个连接。


客户端程序

客户端程序,包括多个:ssh 、scp、sftp。

ssh用于远程登录的命令;

scp用于远程主机间的文件复制;

sftp用于安全的ftp文件操作。

后续依次学习ssh与scp命令。


3 服务端配置

sshd服务端配置文件

/etc/ssh/sshd_config

文件内容非常多,此处截取开头几行。

img


常用配置项说明

常用配置项 说明
Port 22 sshd服务端口,默认为22
ListenAddress 0.0.0.0 监听IP地址,默认为所有地址
HostKey 指定私钥文件路径,不同HostKey对应不同SSH版本
PermitRootLogin yes 是否允许root登录,默认允许
MaxSessions 10 最大终端数量,默认为10
PermitEmptyPasswords no 是否允许空密码登录,默认为no

例1:禁止root登录

注:建议在VMWare中操作。

img

需取消之前的#注释。


修改后需重启服务

systemctl restart sshd

客户端再次连接,即使输入root密码正确,也报错:Access denied。

img


配置还原回去,为提高初学效率,我们以后还是通过root登录。


4 客户端配置

sshd客户端配置文件

/etc/ssh/ssh_config

一般不去修改。


如果在主机A上远程登录主机B,则此时B作为服务器,A作为客户端。

此次连接,B中的sshd_config有意义,A中的ssh_config有意义。