目录
一、SSH基础概念
什么是SSH服务器
SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能;
SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令;
SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。
SSH客户端<--------------网络---------------->SSH服务端
可以看作一种小型的防火墙
SSH优点
-
数据传输是加密的,可以防止信息泄漏
-
数据传输是压缩的,可以提高传输速度
禁止root用户登录,可以使用普通用户登录,su切换到root
ssh协议
SSH客户端: Putty、Xshell、CRT
SSH服务端: OpenSSH
服务名称:sshd
服务端主程序:/usr/sbin/sshd
服务端配置文件:/etc/ssh/sshd_config
客户端配置文件:/etc/ssh/ssh_configan>一般会把22端口改掉提高安全性
常用TCP端口号:
21 FTP FTP服务器所开放的控制端口
22 ssh 加密版远程登陆端口,可以远程控制计算机
23 TELNET 用于远程登陆登陆端口,可以远程控制计算机
80 HPPT 超文本传输协议
443 HTTPS 用SSL/TLS对数据进行加密和解密
25 SMTP SMTP服务器开口
110 pop3 用于邮件的接受
53 DNS 用于域名建立
常用UDP端口号:
69 TFTP 简单文件传输协议
111 RPC 运用过程调试
123 NTP 是用来使计算机时间同步化的一种协议,用于时间校正
169 SNMP 简单协议管理
53 DNS 解析域名
scp远程复制
下行复制
将远程主机的文件复制到本机
scp root@远程主机IP:本机目录 远程主机目录
scp -P 22 root@192.168.98.105:/root/test.txt /data
上行复制
//首先创建文件夹用于scp上传
[root@localhost1 /]#mkdir -p /data/test
[root@localhost1 /]#cd /data/test/
[root@localhost1 test]#touch 1.txt
//使用root用户scp递归将/data目录上传到服务端的/root目录下
[root@localhost1 test]#scp -P 22 -r /data root@192.168.98.105:/root
//进入服务机
[root@localhost2 ~]#ls
//查看这个data目录,确认是scp上传过来的
[root@localhost2 ~]#cd data
[root@localhost2 data]#tree
.
└── test
└── 1.txt
1 directory, 1 file
将本机目录文件复制到远程主机
scp -r 目录 root@远程主机IP 远程主机要复制的目录
[root@localhost1 test]#scp -P 22 -r /data root@192.168.98.105:/root
二、SSH客户端程序
登录
方法一
ssh [远程主机用户名]@[远程服务器主机名或IP地址]
[root@localhost ~]# ssh root@192.168.98.104
root@192.168.98.104's password:
Last login: Wed Aug 17 14:52:23 2022 from 192.168.98.105
[root@localhost ~]# exit
方法二ssh -l [远程主机用户名] [远程服务器主机名或IP 地址]
[root@localhost ~]# ssh -l root 192.168.98.104
root@192.168.98.104's password:
Last login: Thu Aug 18 12:12:22 2022 from 192.168.98.105
[root@localhost ~]# exit
登出
SSHD两种登录验证方式
-
密码验证: 以服务器中本地系统用户的登录名称、密码进行验证。这种方式使用最为简便,但从客户机角度来看,正在连接的服务器有可能被假冒,从服务器角度来看,当遭遇密码暴力破解攻击时防御能力比较弱。
-
密钥对验证: 要求提供相匹配的密钥信息才能通过验证,通常先在客户机中创建一对密钥文件(公钥和私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证,增强了远程管理的安全性。
-
公钥和私钥是成对生成的,这两个密钥互不相同,可以互相加密和解密;
-
不能根据一个密码来推算出另一个密钥;
-
公钥对外公开,私钥只有私钥的持有人才知道。
密钥的配置
#生成密钥文件
[root@localhost ~]# ssh-keygen -t ecdsa
(如果设置免密登录,则重新设置,不设置密码,一路回车)
#将公钥文件导入对方用户的 注意路径
[root@localhost .ssh]# ssh-copy-id -i /root/.ssh/id_ecdsa.pub root@192.168.59.117
#登录客户机
客户端配置
服务端配置