通过ssh服务,连接客户端和服务端(本地环境为win 10和kali)

ssh:一种网络协议,用于计算机之间的加密登录。

如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。

在kali里配置以下命令:

apt-get update
apt-get install ssh :命令安装 SSH 包
vim /etc/ssh/sshd_config:修改sshd_config文件,然后保存退出
        PermitRootLogin yes
        PasswordAuthentication yes //添加或者修改这两行
/etc/init.d/ssh start或者service ssh start :重启ssh 
ifconfig:然后查看ip,内网IP,PC需要与kali在同一个局域网中
ps -e | grep ssh  :查看ssh运行状态
update-rc.d ssh enable :开机自启动

在xshell里配置连接:

登录xshell-新建窗口
在这里插入图片描述

配置完成后验证

在xshell中,使用ssh服务,

 ssh user@host

验证是否使用了ssh服务【基于公钥的验证】

在这里插入图片描述

验证解析:
(1)客户端向服务端发起登录请求:ssh username@hostname
(2)服务端收到客户端的请求后,把自己的公钥发送给客户端;(服务端的公钥保存在/etc/ssh/*.pub里面)
(3)当客户端第一次收到该服务端发送过来的公钥时,为了防止中间人攻击(发送公钥的主机不是服务端,而是拦截了客户端登录请求的主机),客户端主机会有系统提示:
上面的信息说的是:无法确认主机ssh-server.example.com(12.18.429.21)的真实性,不过知道它的公钥指纹,是否继续连接?之所以用fingerprint代替key,主要是key过于长(RSA算法生成的公钥有1024位),很难直接比较。所以,对公钥进行hash生成一个128位的指纹,这样就方便比较了。
如果输入 yes 后,会出现如下信息

Warning: Permanently added 'ssh-server.example.com,12.18.429.21' (RSA) to the list of known hosts. 
Password: (enter password) 

该host已被确认,并被追加到文件 known_hosts 中,然后就需要输入密码。(当 known_hosts 存储了服务端的公钥之后,客户端后续连接该服务端就会比对存储在 known_hosts 文件里的公钥,从而确认是否为该服务端发来的公钥)
(4)客户端输入密码,使用服务端发来的公钥进行加密,发送给服务端;
(5)服务端收到客户端的加密信息,使用自己的私钥进行解密比对,比对正确就给客户端响应。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值