1、SSH简介
ssh(安全外壳协议)是Secure Shell的缩写,是建立在应用层和传输层基础上的安全协议。传输的时候是经过加密的,防止信息泄露,比telnet(明文传递)要安全很多。
ftp安装(要先加载上光盘镜像文件)
安装的ftp服务器端
启动服务
查看
创建一个新用户
tcpdump抓包工具
安装命令
yum install tcpdump
然后在本地机器上连接虚拟机
应该是有防火墙
iptables -L
默认Windows当中启动的防火墙,21端口没开着
这边使用命令全部关掉,然后重新监听21端口
虽然登录失败了,但是并不影响抓包
用户名:
密码:
2、SSH端口
端口:22
Linux中守护进程:sshd
安装服务:OpenSSH
服务端主程序:/usr/sbin/sshd
客户端主程序:/usr/bin/ssh
3、相关配置文件
服务端配置文件:/etc/ssh/sshd_config
客户端配置文件:/etc/ssh/ssh_config
2、SSH加密原理
对称加密算法
采用单钥密码系统的加密方法,同一个秘钥可以同时用作信息的加密和解密,这种加密方式称为对称加密,也称为单秘钥加密。
非对称加密算法又名“公开秘钥加密算法”,非堆成加密算法需要两个秘钥:公开密钥和私有秘钥。
SSH安全外壳协议(是由非对称加密演变来的)
它仅仅只是保护了数据传输的过程,在发送前和接收后中了木马等就可能获得数据内容。
在用Xshell连接服务器时就会有直观的显示。
3、SSH配置文件
服务器端配置文件
应该还有一个客户端的配置文件(ssh_config)
ssh_config在使用过程中,既是一个客户端也是一个服务端,意思是可以允许别人作为客户端通过22端口访问我,我也可以作为客户端去访问别人。
PermitRootLogin yes 允许root的ssh登录(建议普通用户登录)
PasswordAuthentication yes 建议也改成no
虽然有些设置是被注释掉的,但是事实上有些是默认设置的,注释掉也可以。
一般建议把端口改掉。
日志中等级越高记录的信息越少,等级越低记录的信息越详细。
GSSAPI认证开启后,在用Linux系统管理Linux系统时会有一个验证过程,会等很长时间,需要DNS解析。建议关闭(一般是客户端的配置文件,然后重启service sshd restart)
4、常用SSH命令
SSH远程管理
ssh [用户名@ip]
SCP远程复制
下载:
scp [email protected]:/root/text.txt
上传:
scp –r /root/123/ [email protected]/root
5、SSH连接工具
在Windows中用工具远程连接Linux进行管理。
SecureCRT工具
Xshell工具
5、SSH密钥对登录
保护服务器端的SSH
1.改端口
2.防火墙
第一步:创建密钥对,私钥文件:id_rsa,公钥文件:id_rsa.pub(客户机)
第二步:上传公钥文件到SSH服务器(id_rsa.pub)
第三步:导入公钥信息,公钥库文件:~/.ssh/authorized_keys
第四步:使用密钥对验证进行登录
不需要密码登陆,防止了密码被截获的可能,只要保证私钥文件的安全就可以了
步骤一:
客户端:
ssh-keygen –t rsa
服务器:
把公钥上传到服务器端
cat id_rsa.pub >>/root/.ssh/authorized_keys 输出重定向
chmod 600 /root/.ssh/authorized_keys
客户端:
创建普通用户
切换到普通用户
su – user
返回到root
exit
我这边一直是以下这种显示
不管是服务器还是本机的PermitRootLogin yes都改了,但是问题依旧没有解决。
也尝试用普通用户连接,依旧是这种情况。
步骤二
修改服务器ssh配置文件
RSAAuthentication yes 开启RSA验证
PubkeyAuthentication yes 是否使用公钥验证
AuthorizedKeysFile .ssh/authorized_keys 公钥的保存位置
PasswordAuthentication on 禁止使用密码验证登录
步骤三
服务器端关闭SELinux服务
vi /etc/selinux/config
重启系统
服务器端重启ssh服务
service sshd restart