linux网络服务[SSH安全远程管理]——————SSH的工作原理、账户密码登录、密钥对免密登录

编程入门 行业动态 更新时间:2024-10-15 08:21:00

linux网络服务[SSH安全远程管理]——————SSH的工作原理、账户密码登录、<a href=https://www.elefans.com/category/jswz/34/1771335.html style=密钥对免密登录"/>

linux网络服务[SSH安全远程管理]——————SSH的工作原理、账户密码登录、密钥对免密登录

文章目录

  • 1. 什么是SSH
  • 2.SSH的原理
    • 2.1 账户密码
    • 2.2 密钥对
  • 3.用户密码验证
    • 3.1 字符界面
      • 3.1.1 输入用户名
      • 3.1.2 不输入用户名
    • 3.2 图形模式
  • 4.密钥对登录
    • 4.1 客户端操作
      • 4.1.1 免密登录
      • 4.1.2 私钥加密登录
    • 4.2 服务端操作

1. 什么是SSH

SSH 为 Secure Shell 的缩写,SSH 为建立在应用层基础上的安全远程管理协议

SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

默认使用tcp的22端口,会采用加密的密文方式进行传输。

Telnet在网络中采用明文传输,所以容易被抓取查看,不安全,所以被SSH取代。

2.SSH的原理

两种登录方式:

  • 账户密码(口令)
  • 密钥对

这两种方式都是让客户与服务端安全的登录连接在一起,之间传输的数据用密文传输。

用户要SSH连接服务器,首先要知道服务其中的账户和密码:

  • 账户:/etc/passwd
  • 密码:/etc/shadow

用户通过工具,将服务端的账户名和密码通过密文的方式打包发送给服务端,服务端查看其中的用户名和密码,在自己的文件中进行比对成功,最终建立连接。

如果是使用Telnet,用户名和密码的包就是明文传输,会被其他人抓取查看到,所以不安全。

2.1 账户密码

基于密码的安全认证就是我们一直在用的,只要知道服务器的SSH连接账号和密码(当然也要知道服务器的IP和端口(默认22)),就可以通过客户端远程登录到主机了,所以的传输过程都是加密的

只要你知道自己的帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密。

但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人攻击”这种方式的攻击

2.2 密钥对

不再使用密码,双向密钥对。

你必须为自己创建一对密钥,并把公钥放在需要访问的服务器上。

如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的公钥进行安全验证。询问服务器的系统下是否存有这个公钥?

服务器收到请求之后,先在该服务器上你的主目录下寻找你的公钥,然后把它和你发送过来的公钥进行比较。如果两个密钥一致,服务器就用公钥加密“质询”(challenge)并把它发送给客户端软件。

客户端软件收到“质询”之后就可以用你的私钥在本地解密再把它发送给服务器完成登录。

与第一种级别相比,第二种级别不仅加密所有传输的数据,也不需要在网络上传送口令,因此安全性更高,可以有效防止中间人攻击。

3.用户密码验证

环境准备:

  • 两台虚拟机,一台作为服务端server,一台作为客户端client1。
  • 关闭防火墙
  • 永久关闭selinux

3.1 字符界面

3.1.1 输入用户名

1)查看客户端与服务端的IP

[root@client1 ~]# ip addr show eth0 # 客户端ip
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 52:54:00:00:05:0b brd ff:ff:ff:ff:ff:ffinet 172.25.5.2/24 brd 172.25.5.255 scope global eth0valid_lft forever preferred_lft foreverinet6 fe80::5054:ff:fe00:50b/64 scope link valid_lft forever preferred_lft forever[root@server ~]# ip a # 服务端的ip
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 52:54:00:b2:1b:71 brd ff:ff:ff:ff:ff:ffinet 172.25.5.10/24 brd 172.25.5.255 scope global ens3valid_lft forever preferred_lft foreverinet6 fe80::4608:756c:3af9:e967/64 scope link valid_lft forever preferred_lft forever

2)删除客户端和服务端当前用户下的家目录下的/.ssh目录

[root@client1 ~]# rm -fr .ssh # 表示从来没有ssh的连接信息了
[root@client1 ~]# ls -a
.                .bash_logout   .config    Downloads      Music     Templates
..               .bash_profile  .cshrc     .esd_auth      Pictures  Videos
anaconda-ks.cfg  .bashrc        Desktop    .ICEauthority  Public    .viminfo
.bash_history    .cache         Documents  .local         .tcshrc
[root@server ~]#  rm -fr .ssh # 没有连接信息
[root@server ~]# ls -a
.                .bash_profile  .dbus                 .tcshrc       图片  音乐
..               .bashrc        .esd_auth             .viminfo      文档
anaconda-ks.cfg  .cache         .ICEauthority         .xauthlmCsfD  桌面
.bash_history    .config        initial-setup-ks.cfg  下载          模板
.bash_logout     .cshrc         .local                公共          视频

3)客户端通过用户密码的方式进行ssh登录连接:

[root@client1 ~]# ssh root@172.25.5.10
The authenticity of host '172.25.5.10 (172.25.5.10)' can't be established.
ECDSA key fingerprint is 46:14:77:1e:a0:f2:23:c3:66:24:23:76:ff:81:21:e5.
Are you sure you want to continue connecting (yes/no)? yes 
# 输入yes
Warning: Permanently added '172.25.5.

更多推荐

linux网络服务[SSH安全远程管理]——————SSH的工作原理、账户密码登录、密钥对免密登录

本文发布于:2024-02-06 09:47:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1748075.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:密钥   远程管理   工作原理   账户   网络服务

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!