赞
踩
加密: 可以防止信息泄漏
压缩: 可以提高传输速度
客户端:
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 root@192.168.61.110
## 这一步需要输入对方的密码
------3.再次远程登录客户机------
[root@Kiro .ssh]# ssh root@192.168.61.110
Enter passphrase for key '/root/.ssh/id_ecdsa': ##这个时候就需要输入密钥而不是密码了
ssh远程登录
[root@pxw /]# ssh kiro@192.168.61.100
kiro@192.168.61.100's password:
Last login: Fri Apr 15 16:43:30 2022 from 192.168.61.110
##第一次登陆时需要接收来自服务端的密钥 博主的客户端不是第一次登陆了所以不需要
scp远程复制
通过scp命令可以利用SSH安全连接与远程主机相互复制文件;接下来我为大家做两个演示,分别是把远程主机的文件复制给本机,还有把本机的文件复制给远程主机:
--------远程主机 >>> 本机------- [root@Kiro /]# scp root@192.168.61.110:/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 root@192.168.61.110:/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 root@192.168.61.110 ##登录 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 ##禁止访问的列表
测试结果:
IP地址为:192.168.61.110的主机访问192.168.61.100 失败
●grace意思是系统给与多少秒来进行登录。(默认2分钟,0表示无限制)
●当使用者连上 SSH server 之后,会出现输入密码的画面,在该画面中。
●在多久时间内没有成功连上sSHserver 就强迫断线!若无单位则默认时间为秒。可以根据实际情况来修改实际
是否允许 root 登入,默认是允许的,但是建议设定成no,真实的生产环境服务器,是不允许root账号直接登陆的,仅允许普通用户登录,需要用到 root 用户再切换到root 用户。
例:
创建用户zhangsan、 lisi
查询组
grep “wheel” letc/group
gpasswd -a zhangsan wheel #zhangsan用户已加入 wheel 组
开启pam模块
密码验证当然是需要的!所以这里写yes,也可以设置为no,在真实的生产服务器上,根据不同安全级别要求,有的是设置不需要密码登陆的,通过认证的秘钥来登陆。
是否允许空密码的用户登录,默认为no,不允许空密码登录
显示上次登入的信息!默认为yes
指定每个连接最大允许的认证次数。默认值是6 。
如果失败认证的次数超过这个数值的一半,连接将被强制断开,且会生成额外的失败日志消息默认3次
阿里云
扩展命令参数
ssh -o ConnectTimeout=3 -o Connectionattempts=5 -o
Passwordauthentication=no
-o strictHostKeychecking=no $ip ”
command "
#connectTimeout=3 #连接超时时间,3秒
#ConnectionAttempts=5 #连接失败后重试次数,5次
#PasswordAuthentication=no #不使用密码认证,没有互信直接退出
#StrictHostKeychecking=no #自动信任主机并添加到known_hosts文件
例:
ssh -o strictHostKeyChecking=no root@192.168.10.0
对未经过安全认证的RPM包进行安全检查
Linux用户方面的加固
设定密码策略
对用户密码强度的设定
对用户的登录次数进行限制禁止ROOT用户远程登录
设置历史命令保存条数和账户超时时间设置只有指定用户组才能使用su命令切换到root用
对Linux账户进行管理
对重要的文件进行锁定,即使ROOT用户也无法删除
建立日志服务器曰
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。