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 root@192.168.44.2:/root/text.txt

上传:

scp –r /root/123/ root@192.168.44.2/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

最新文章

  1. jsDoc的使用
  2. 完全背包问题 POJ1384
  3. nginx用户认证配置( Basic HTTP authentication)
  4. js私有共有成员
  5. OBJECT ARX 获取标注样式信息
  6. 如何解决缺少OCX问题,如何在win7 64位下注册OCX
  7. C++标准程序库的输入输出流(I/O Stream)复制文件(4种方法)
  8. nyoj-709-异形卵(水题)
  9. web开发没有服务器
  10. this 指针
  11. bios下能看到硬盘,进入系统看不到的解决方法
  12. 550 5.7.1 Client does not have permissions to send as this sender
  13. IDEA中使用vim删除复制代码的行号
  14. 【持续更新中···】Linux下的小技巧
  15. Legal or Not HDU
  16. SQL-Server多表关联查询并分页
  17. Mybatis之使用注解开发CRUD
  18. 最长公共子序列(POJ1458)
  19. PHP中的WebService
  20. python *args **kwargs,传入不固定的参数给函数,或者传入很多的内容给函数,常用在构造函数中。

热门文章

  1. keras 添加L2正则 和 dropout层
  2. HttpRunner学习2--用例格式和简单使用
  3. [css flex布局]实例一,本来还想挺简单的,弄了挺久呢,先写一部分
  4. FCC---CSS Flexbox: Apply the flex-direction Property to Create Rows in the Tweet Embed
  5. ubutu tornado python3.7.5 nginx supervisor 部署web api
  6. 微信小程序框架部署:mpvue+typescript
  7. Linux命令详解 三
  8. centos8 yum 安装 rabbitmq
  9. 华为eNSP路由交换实验-生成树之RSTP
  10. C#的语法----程序结构(2)