SSH 实验

SSH 实验

环境准备

准备好两台 Linux 操作系统的主机,配置好相关网络参数,实现可以正常通信,并将主机名修改为不同的名字。

临时关闭防护功能:

1
2
iptables -F  #清空防火墙规则
setenforce 0 #临时关闭SELinux

永久关闭防护功能:

1
2
chkconfig iptables off                            #设置防火墙开机不自启动
sed -i '7s/enconfig/disabled' /etc/selinux/config #永久关闭SELinux

注意:以上两条命令执行后,需要重启服务器才能生效,切记

修改主机名

1
hostname s01 #服务器 1 上

其他的机器自行修改

用户密码验证

Linux主机之间的远程管理工具上ssh命令,所以我们直接使用ssh进行远程登录

1
2
# ssh 用户名@IP地址
ssh 用户名@服务器IP地址

密钥对验证

Linux主机之间的密钥对登录验证

  1. 客户端生成密钥对文件
1
ssh-keygen -t rsa -b 2048

-t 指定加密类型 (rsa/dsa 等)
-b 指定密钥对加密长度
询问1:执行过程中会询问保存位置,一般默认保存在当前用户家目录下面的

1
2
3
4
5
6
7
8
询问2:是否对密钥文件进行加密
加密:若加密,则在调用密钥文件时需要先验证密钥的密码,密码正确才能使用密钥文件
不加密:若不加密,则密钥文件可以直接被调用,整个登录验证过程无需输入任何密码,即为免密登录

2. 将公钥文件上传至服务器端

```shell
ssh-copy-id 用户名@服务器IP地址 #该用户名和要用来登录服务器的用户名一致

  1. 客户端尝试登录服务器
1
ssh 用户名@服务器IP地址 #密钥对验证优先级大于账户密码验证

禁止使用密码登录

当我们学会了使用密钥对进行验证后,建议生产环境下将账户密码登录功能关掉

配置文件:/etc/ssh/sshd_config

选项:PasswordAuthentication no

注意:ssh的配置文件中,并不是注释掉就是不生效的,有些是默认生效,需要修改时一定要取消注释再修改

禁止使用root远程登录

root在系统中是一个可以为所欲为的角色。我们可以在平时的操作中用普通用户操作,在有需要修改一些系统设置的时候再从普通用户切换到root用户,这样可以最大限度的避免因为误操作而对系统造成破坏,同时也可以避免黑客在暴力破解后直接使用root用户登录系统,一般在远程登录管理上我们会禁止直接使用root用户登录

配置文件:/etc/ssh/sshd_config

选项:PermitRootLogin no

修改默认端口、限制ssh监听IP

修改默认端口:ssh作为一个用来远程管理服务器对工具,需要特别安全,默认情况下使用TCP的22端口,若不进行修改,很容易被利用遭到攻击,所以我们一般都会修改端口,尽量修改一个高位端口(范围1-65535)

配置文件:/etc/ssh/sshd_config

选项:Port 59527

1
ssh -p 端口 用户名@服务器IP

限制ssh监听IP:有些服务器则安全级别更高一些,不允许使用外网直接登录,只有通过局域网才能登录,我们可以在机房李设置其中一台能够被外网远程连接,其他主机都通过这个机器进行远程连接即可

配置文件:/etc/ssh/sshd_config

选项:ListenAddress IP地址

ssh服务相关命令

scp:安全都远程文件复制命令

scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,类似于命令有cp,scp传输是加密的,所以可能会稍微影响一点速度。另外,scp还非常不占资源,不会提高多少系统负荷

格式:scp 本地文件 用户名@服务器IP:目录

-P 端口 #若端口不是默认22,则需要使用此格式指定端口

sftp:安全的文件传输协议

sftp是Secure FileTransferProtocol的缩写,安全文件传输协议。sftp于ftp有着几乎一样的语法和功能。由于这种传输方式使用了加密/解密技术所以sftp比ftp更安全一些,但传输效率比普通的FTP要低的多

格式: sftp 用户名@服务器IP

-oPort=端口 #若端口不是默认22,则需要使用此格式指定端口

交互命令:
help:查看在交互模式下支持哪些命令
pwd/lpwd:pwd是查看服务器所在目录;lpwd是查看客户端所在路径
ls/lls:ls是查看服务器当前目录下的文件列表;lls是查看客户机当前所在的所有文件列表
put:将客户机中的指定文件上传到服务器端
get:将服务器端的指定文件下载到客户机的当前所在目录
rm:删除掉服务器端的指定文件
quit:退出sftp的交互模式,断开和服务器之间的连接