赞
踩
SSH(secure shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。
SSH协议还对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,提供了很好的安全性能。
OpenSSH服务器由openssh、openssh-server等软件包提供,在centos7的系统中默认已经安装。
[root@localhost ~]# vi /etc/ssh/sshd_config
Port 22 //默认监听端口是22,非必要可以不修改
ListenAddress IP地址 //表示监听的地址
seDNS no //禁止DNS反向解析,可以提高服务器响应速度
LoginGraceTime 2m //会话时间为2分钟(两分钟不进行操作就断开连接)
PermitRootLogin yes //允许root用户登录,一般不允许
MaxAuthTries 6 //最大尝试次数为6次
MaxSessions 10 //最多允许10个终端登录
PermitEmptyPasswords no //禁止免密登录
AllowUsers test01 test02@192.168.100.17 //仅允许test01、test02用户登录、test02用户只能以192.168.100.17终端登录
sshd服务默认允许root账户登录,但是我们以普通用户的身份登录,仍然可以切换root账户,给安全带来了隐患,我们可以启用pam认证模块,来保证安全性。
AllowUsers(白名单,仅允许,只有这些可以登录)
DenyUsers(黑名单,仅拒绝,只有这些不行)
AllowUsers不可与DenyUsers同时使用
sshd服务支持两种验证方式–密码验证、密钥对验证
vi /etc/ssh/sshd_config
PasswordAuthentication yes //启用密码验证
PubkeyAuthentication yes //启用密钥对验证
AuthorizedKeysFile .ssh/authorized_keys //指定公钥库数据文件
通过ssh命令可以远程登录sshd服务,为用户提供一个安全的shell环境,以便对服务器进行管理与维护。使用时应指定登录用户、目标主机地址作为参数。
ssh命令应用:
[root@localhost ~]# ssh shi@192.168.100.20 //192.168.100.47的主机用账户shi切换到192.168.100.20主机
The authenticity of host '192.168.100.20 (192.168.100.20)' can't be established.
ECDSA key fingerprint is SHA256:MrJr/7oBKpWRZ9R/PtsckkVyZZ85dQ3qdHc/4ZSrIfs.
ECDSA key fingerprint is MD5:2e:6d:1b:b4:e3:ff:96:39:de:60:22:a4:1e:27:9b:49.
Are you sure you want to continue connecting (yes/no)? yes //选择yes
Warning: Permanently added '192.168.100.20' (ECDSA) to the list of known hosts.
shi@192.168.100.20's password: //输入shi账户的密码
[shi@localhost ~]$
通过scp命令可以利用SSH安全连接与远程主机相互复制文件。使用scp命令时,除了必须指定复制源、目标外,还应指定目标主机地址、登录用户,执行后提示验证口令即可。
[root@localhost opt]# touch zhangsan.txt /opt //在/opt下创建一个文件,并在里面写入内容
[root@localhost opt]# ll
总用量 8276
-rw-r--r--. 1 1001 1002 0 6月 14 18:48 10.txt
-rw-r--r--. 1 root root 90 6月 11 03:26 1.txt
drwxr-xr-x. 2 root root 6 6月 16 00:59 a
drwxr-xr-x. 12 501 games 4096 6月 11 18:30 httpd-2.4.25
-rw-r--r--. 1 root root 8460433 6月 11 18:25 httpd-2.4.25.tar.gz
drwxr-xr-x. 2 root root 6 10月 31 2018 rh
-rw-r--r--. 1 root root 12 7月 12 22:55 zhangsan.txt
[root@localhost opt]# vi zhangsan.txt
[root@localhost /]# mkdir -p /mnt/1/2/3/4 //在第二台虚拟机中创建一个递归目录
然后我们在第二个主机将第一个主机的文件复制过来
[root@localhost /]# scp shi@192.168.100.7:/opt/zhangsan.txt /mnt //将192.168.100.7主机的opt目录下的zhangsan.tat复制到当前主机的mnt目录下 The authenticity of host '192.168.100.7 (192.168.100.7)' can't be established. ECDSA key fingerprint is SHA256:2+bFMzk0Bg4agHkffqTtuLwKjxHeZZiYzlFrlmGFdTo. ECDSA key fingerprint is MD5:62:8f:74:dd:68:28:12:5b:87:dc:81:d2:0c:47:91:43. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.100.7' (ECDSA) to the list of known hosts. shi@192.168.100.7's password: //输入shi账户的密码 zhangsan.txt 100% 12 18.9KB/s 00:00 [root@localhost /]# cd /mnt //到mnt目录下 [root@localhost mnt]# ll 总用量 4 drwxr-xr-x. 3 root root 15 7月 13 04:06 1 -rw-r--r--. 1 root root 12 7月 13 06:13 zhangsan.txt [root@localhost mnt]# cat zhangsan.txt //查看复制过来的内容 hello word
scp -r /mnt/ root@192.168.100.47:/opt //将当前主机的/mnt目录下的所有文件以root账户的名义复制到192.168.100.47主机下的opt目录
通过sftp命令可以利用SSH安全连接与远程主机上传、下载文件,采用了与FTP类似的登录过程和交互式环境,便于目录资源管理。
[root@localhost ~]# sftp root@192.168.100.7 //远程连接192.168.100.7主机 root@192.168.100.7's password: //输入密码 Connected to 192.168.100.7. sftp> ls //查看192.168.100.7主机当前目录,当前目录为192.168.100.7 的家目录 1.txt aa anaconda-ks.cfg bb initial-setup-ks.cfg man man.txt yushasha.txt 下载 公共 图片 文档 桌面 模板 视频 音乐 sftp> cd /opt //到opt目录下 sftp> ls 1.txt 10.txt a httpd-2.4.25 httpd-2.4.25.tar.gz rh zhangsan.txt sftp> put /boot/ System.map-3.10.0-957.el7.x86_64 config-3.10.0-957.el7.x86_64 efi/ grub/ grub2/ initramfs-0-rescue-a70b79ece13c49e99b88047c030fe5b5.img initramfs-3.10.0-957.el7.x86_64.img initramfs-3.10.0-957.el7.x86_64kdump.img symvers-3.10.0-957.el7.x86_64.gz vmlinuz-0-rescue-a70b79ece13c49e99b88047c030fe5b5 vmlinuz-3.10.0-957.el7.x86_64 sftp> put /boot/config-3.10.0-957.el7.x86_64 //上传文件 Uploading /boot/config-3.10.0-957.el7.x86_64 to /opt/config-3.10.0-957.el7.x86_64 /boot/config-3.10.0-957.el7.x86_64 100% 148KB 14.8MB/s 00:00 sftp> bye //退出登录
第一步:创建密钥对
[root@localhost ~]# ssh-keygen -t ecdsa 生成密钥对 Generating public/private ecdsa key pair. Enter file in which to save the key (/root/.ssh/id_ecdsa): Enter passphrase (empty for no passphrase): 设置私钥密码 Enter same passphrase again: 确认私钥密码 Your identification has been saved in /root/.ssh/id_ecdsa. Your public key has been saved in /root/.ssh/id_ecdsa.pub. The key fingerprint is: SHA256:8CO7m/l3Ng/rNshuXMYVoci/iWBfye6DsHXRHmTkmE8 root@localhost.localdomain The key's randomart image is: +---[ECDSA 256]---+ | .o. | | . . =+ | | . o ++E. | | o o.++ | | . S .=+.. | | +.+.+=o. | | . *o*= | | +. B.Bo | | =o.+.=+=. | +----[SHA256]-----+
第二步:.上传公钥文件id _rsa.pub
[root@localhost ~]# scp ~/.ssh/id_ecdsa.pub root@14.0.0.17:/opt
id_ecdsa.pub 100% 188 162.4KB/s 00:00
第三步:在服务器导入公钥信息
第二步与第三步还可以变成一步,运用命令"ssh-copy-id -i"命令
[root@localhost ~]# ssh-copy-id -i ~/.ssh/id_ecdsa.pub root@14.0.0.17
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_ecdsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@14.0.0.17's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@14.0.0.17'"
and check to make sure that only the key(s) you wanted were added.
第四步:使用密钥对验证方式
输入刚刚我们设置的私钥验证
我们还可以增加免密远程登录,运用"ssh-agent bash"命令与"ssh-add"命令。
[root@localhost ~]# ssh-agent bash
[root@localhost ~]# ssh-add
Enter passphrase for /root/.ssh/id_ecdsa: 输入设置的私钥密码
Identity added: /root/.ssh/id_ecdsa (/root/.ssh/id_ecdsa)
[root@localhost ~]# ssh root@14.0.0.17
Last login: Thu Jul 16 22:32:48 2020 from 14.0.0.14
TCP Wrappers将其他的TCP服务程序包装起来,增加一个安全检测过程。外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务控制。
保护机制实现方式有两种
通过tcpd主程序对其他服务程序进行包装
由凄然服务程序调用libwrap.so.*链接库
对应的两个策略文件分别是/etc/hosts.allow和/etc/hosts.deny
<服务列表>:<客户机地址列表>
服务列表与客户机地址列表之间用冒号分隔。
这时候我们分别用192.168.100.7和192.168.100.20去登录192.168.100.47
主机192.168.100.7
[root@localhost ~]# ssh root@192.168.100.7
root@192.168.100.7's password:
Last login: Mon Jul 13 08:38:59 2020 from 192.168.100.1
[root@localhost ~]#
主机192.168.100.20
[root@localhost ~]# ssh root@192.168.100.47
ssh_exchange_identification: read: Connection reset by peer
[root@localhost ~]#
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。