加密: 可以防止信息泄漏
客户端:
Linux Client: ssh, scp, sftp,slogin
Windows Client: xshell, MobaXterm,putty, securecrt, sshsecureshellclient
服务端::
OpenSSH 是实现SSH协议的开源软件项目,适用于各种UNIX、 Linux 操作系统
Centos 7系统默认已安装openssh相关软件包,并将sshd 服务添加为开机自启动(systemctl start sshd 启动服务)
SSH服务的开启:
systemctl start sshd 启动服务
SSH服务的端口号:
sshd服务使用的端口默认号为22
1023以上就是高位端口
SSH服务的配置文件
sshd服务的默认配置文件是/etc/ssh/sshd_config
ssh_config(客户端) 和sshd_config (服务端)都是ssh服务器的配置文件。
服务名称:sshd
服务端主程序:/usr/sbin/sshd
服务端配置文件:/etc/ssh/sshd_config
客户端配置文件:/etc/ssh/ssh_config
[root@Kiro .ssh]# vim /etc/ssh/sshd_config ##进入服务端配置文件
MaxAuthTries 6 ##输入密码次数限制 6代表输错六次就退出
PasswordAuthentication yes ##打开密钥
PubkeyAuthentication yes ##开启密码认证
------方法一-------
ssh [远程主机用户名]@[远程服务器主机名或IP地址] -p port
当在 Linux 主机上远程连接另一台 Linux 主机时,如当前所登录的用户是 root 的话,当连接
另一台主机时也是用 root 用户登录时,可以直接使用 ssh IP,端口默认即可,如果端口
不是默认的情况下,需要使用-p 指定端口
------方法二------
ssh -l [远程主机用户名] [远程服务器主机名或IP 地址] -p port
-l : 指定登录名称。
-p:指定登录端口(当服务端的端口非默认时,需要使用-p 指定端口进行登录)
密码验证:
以服务器中本地系统用户的登录名称、密码进行验证。这种方式使用最为简便,但从客户机角度来看,正在连接的服务器有可能被假冒,从服务器角度来看,当遭遇密码暴力破解攻击时防御能力比较弱。
密钥对验证:
要求提供相匹配的密钥信息才能通过验证,通常先在客户机中创建一对密钥文件(公钥和私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证,增强了远程管理的安全性。
做了密钥设置之后,服务端远程控制客户端就需要密钥了:
------1.生成密钥文件------
[root@Kiro ~]# ssh-keygen -t ecdsa
##需要自定义设置密码,如果不想设置密码就一直回车
-----2.将公钥文件导入对方的用户-----
[root@Kiro ~]# cd /root/.ssh
[root@Kiro .ssh]# ls
id_ecdsa id_ecdsa.pub known_hosts
:
[root@Kiro .ssh]# ssh-copy-id -i /root/.ssh/id_ecdsa.pub [email protected]
## 这一步需要输入对方的密码
------3.再次远程登录客户机------
[root@Kiro .ssh]# ssh [email protected]
Enter passphrase for key '/root/.ssh/id_ecdsa': ##这个时候就需要输入密钥而不是密码了
ssh远程登录
[root@pxw /]# ssh [email protected]
[email protected]'s password:
Last login: Fri Apr 15 16:43:30 2022 from 192.168.61.110
##第一次登陆时需要接收来自服务端的密钥 博主的客户端不是第一次登陆了所以不需要
scp远程复制
通过scp命令可以利用SSH安全连接与远程主机相互复制文件;接下来我为大家做两个演示,分别是把远程主机的文件复制给本机,还有把本机的文件复制给远程主机:
--------远程主机 >>> 本机-------
[root@Kiro /]# scp [email protected]:/etc/passwd /opt/kiro
##将远程主机/etc/passwd 下的文件内容复制到本机/opt/kiro 文件下
Enter passphrase for key '/root/.ssh/id_ecdsa': ##需要输入密钥
passwd 100% 2349 1.0MB/s 00:00
##复制的文件名以及进度条
---------本机 >>> 远程主机-------
[root@Kiro /]# scp /etc/passwd [email protected]:/opt/pxw
##将本机的/etc/passwd 文件内容复制到远程主机/ opt/pxw文件之下
Enter passphrase for key '/root/.ssh/id_ecdsa': ##需要输入密钥
passwd 100% 2399 614.2KB/s 00:00
## 复制文件名 和进度条
---------复制目录:scp -r---------
sftp 安全 FTP
通过sftp命令可以利用 SSH安全连接与远程主机上传、下载文件,采用了与FTP类似的登陆过程和交互式环境,便于目录资源管理接下来博主为大家演示一下登录、浏览、上传文件等过程:
[root@Kiro /]# sftp [email protected] ##登录
Enter passphrase for key '/root/.ssh/id_ecdsa':
##因为设置了密钥 ,这里输入密码而不是密钥
Connected to 192.168.61.110.
sftp> ls ##查看一下当前目录下有什么
anaconda-ks.cfg initial-setup-ks.cfg
sftp> put /boot/config-3.10.0-957.el7.x86_64 ##上传config安装包
Uploading /boot/config-3.10.0-957.el7.x86_64 to /root/config-3.10.0-957.el7.x86_64
/boot/config-3.10.0-957.el7.x86_64 100% 148KB 1.5MB/s 00:00
sftp> ls ##再次查看 config安装包上传成功
anaconda-ks.cfg config-3.10.0-957.el7.x86_64
initial-setup-ks.cfg
sftp> bye ##退出登录
[root@Kiro /]#
策略的配置格式:
<服务程序列表>:<客户机地址列表>
服务程序列表:
客户机地址列表:
[root@Kiro ]# vim /etc/hosts.allow ##允许访问的列表
[root@Kiro ]# vim /etc/hosts.deny ##禁止访问的列表