Linux--远程登录服务ssh

一.概念

远程连接服务器通过文字或图形接口方式来远程登录系统,让你在远程终端前登录linux主机以取得可操作主机接口(shell),而登录后的操作感觉就像是坐在系统前面一样

二.分类

2.1文字接口

2.1.1 明文传输:Telnet.RSH等,目前这两种用的较少

复制代码
[root@server ~]# yum  install telnet-server -y  # 安装telnet

[root@server ~]# systemctl start  telnet.socket  # 启动服务

# 使用xshell 新建telnet连接

如若不记得自己虚拟机IP,课在虚拟机上输入 ip a 回车,则显示IP

下载wireshake并启动

复制代码
# 在https://www.wireshark.org/download.html下载安装wireshar

# 启动wireshark,选择捕获VMnet8网卡

复制代码
# 在xshell中输入ip a 或其它命令

# 在wireshark选择记录后单右->追踪流->TCP流

复制代码
# 可以看到是明文传输

2.1.2加密传输:以ssh为主,已取代明文传输

复制代码
# 关闭上述telnet连接,建立ssh连接,查看是否为加密传输

SSH(Secure Shell Protocol,安全壳程序协议)由 IETF 的网络小组(Network Working Group)所制定,可以通过数据包加密技术将等待传输的数据包加密后再传输到网络上。

  • ssh协议本身提供两个服务器功能:

    • 一个是类似telnet的远程连接使用shell的服务器;

    • 另一个就是类似ftp服务的sftp-server,提供更安全的ftp服务。

2.2图形接口

  • XDMCP、VNC、XRDP等

三.连接加密技术

目前常见的网络抓包加密技术通常是通过"非对称密钥系统"来处理的,通过两把不一样的公钥和私钥来进行加密与解密的过程

3.1密钥解析

  • 公钥:提供给远程主机进行数据加密的行为,所有人都可获得你的公钥来将数据加密。

  • 私钥:远程主机使用你的公钥加密的数据,在本地端就能够使用私钥来进行解密。私钥只有自己拥有。

公私钥的解密方法只有两种:

(1)小文用小明的公钥加密,小明只能用自己的私钥解密(这种方法私密性较好)

(2)小文用自己的私钥加密,小明在网站上下载小文的公钥解密(这种方法可以用于身份验证,数字签名)

四.ssh的服务配置

ssh远程登录的端口号为22

复制代码
[root@server ~]# ss  -lntup  |  grep  sshd

4.1安装ssh

复制代码
[root@zhangjiajie ~]# yum  install  openssh -y 

切记,ssh的安装包名为openssh

4.2.ssh的配置文件分析

复制代码
[root@server ~]# vim  /etc/ssh/sshd_config

21.#Port 22  # 默认监听22端口,可修改
22.#AddressFamily any  # IPV4和IPV6协议家族用哪个,any表示二者均有
23.#ListenAddress 0.0.0.0 # 指明监控的地址,0.0.0.0表示本机的所有地址(默认可修改)
24.#ListenAddress :: # 指明监听的IPV6的所有地址格式

26.#HostKey /etc/ssh/ssh_host_rsa_key     # rsa私钥认证,默认
27.#HostKey /etc/ssh/ssh_host_ecdsa_key   # ecdsa私钥认证
28.#HostKey /etc/ssh/ssh_host_ed25519_key # ed25519私钥认证


34 #SyslogFacility AUTH  # ssh登录系统的时会记录信息并保存在/var/log/secure
35.#LogLevel INFO   # 日志的等级

39.#LoginGraceTime 2m   # 登录的宽限时间,默认2分钟没有输入密码,则自动断开连接
40 PermitRootLogin yes # 允许管理员root登录 
41.#StrictModes yes   # 是否让sshd去检查用户主目录或相关文件的权限数据
42.#MaxAuthTries 6  # 最大认证尝试次数,最多可以尝试6次输入密码。之后需要等待某段时间后才能再次输入密码
43.#MaxSessions 10   # 允许的最大会话数

49.AuthorizedKeysFile .ssh/authorized_keys # 选择基于密钥验证时,客户端生成一对公私钥之后,会将公钥放到.ssh/authorizd_keys里面
65 #PasswordAuthentication yes  # 登录ssh时是否进行密码验证
66 #PermitEmptyPasswords no    # 登录ssh时是否允许密码为空

......
123.Subsystem sftp /usr/libexec/openssh/sftp-server #支持 SFTP ,如果注释掉,则不支持sftp连接
AllowUsers user1 user2 #登录白名单(默认没有这个配置,需要自己手动添加),允许远程登录的用户。如果名单中没有的用户,则提示拒绝登录

注意:配置文件显示行号的命令为 shift+冒号 set nu

五.ssh实操

5.1 拒绝ssh账户远程登录

参数值含义

|----------------------|-----------|---------|-------|
| 参数类别 | 是否允许ssh登录 | 登陆方式 | 交互ssh |
| yes | 允许 | 无限制 | 无限制 |
| no | 不允许 | 无 | 无 |
| prohibit-password | 允许 | 仅允许使用密码 | 无限制 |
| forced-commands only | 允许 | 仅允许密钥 | 授权的口令 |

一般前两个经常用,后两个很少用

显示行号的命令shift + 冒号 set nu(在41行修改)

复制代码
41 [root@server ~]# vim  /etc/ssh/sshd_config    
PermitRootLogin no         # yes修改为no
# shift+冒号  wq保存并退出

[root@zhangjiajie ~]# systemctl restart sshd  #重启服务

修改为no之后ssh就登录不上了

改为yes之后就顺利登录

切记一定要重启服务!!!!

5.2允许特定账户进行ssh登录,其他账户不能登录

1.服务器添加新账户

复制代码
[root@zhangjiajie ~]# useradd test   #添加新帐户test
[root@zhangjiajie ~]# passwd test    #修改新账户test的密码

查看我们的有几个用户(可用用户为3个)

2.设置白名单设置那个账户可以用

复制代码
[root@zhangjiajie ~]# vim  /etc/ssh/sshd_config   #进入配置文件
[root@zhangjiajie ~]# systemctl   restart  sshd   #重启服务

随便找个空白地方,写上allowusers XXX XXX (单词必须显示黄色,否则不起作用,没显示就是拼写错误)允许那些账户可以登录,这里我写的是允许新建账户test和andy可以登录,root账户不能登录

root账户登不上去

andy账户可以登录

test账户可以登录

退出andy和test账户时,写上exit注销就退出了,也可以Ctrl+c终止并退出

六,总结ssh远程登录

SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络中安全地进行远程登录、文件传输和命令执行。

|----------------------------------|----------------|
| 命令 | 作用 |
| ssh username@hostname | 基本登录 |
| ssh -p port username@hostname | 指定端口登录 |
| ssh -i ~/.ssh/key.pem user@host | 指定密钥登录 |
| scp file user@host:/path | 安全传输文件 |
| ssh-copy-id user@host | 上传公钥到服务器 |
| ssh -v user@host | 调试模式(查看详细连接过程) |

相关推荐
佳児素花痴╮20 分钟前
C语言链接库
linux·运维·服务器
雷电小将军30 分钟前
诡秘之主手游占卜家序列加点 诡秘之主手游占卜家怎么加点
服务器·网络·游戏·电脑·玩游戏
云飞云共享云桌面34 分钟前
苏州昆山精密机械加工厂研发部门10个SolidWorks可以部署云飞云共享云桌面吗?
大数据·运维·服务器·自动化·汽车·制造
聚美智数35 分钟前
图片水印-图片剪裁-图片缩放API接口介绍
java·服务器·数据库
wWYy.1 小时前
Linux发送数据包的过程
linux·网络
小嵌同学1 小时前
Linux 内核中的 Per-CPU 机制详解
linux·运维·arm开发·嵌入式
云飞云共享云桌面1 小时前
自动化设备厂 10 人研发团队,如何共用一台服务器做 SolidWorks 建模?
运维·服务器·网络·3d·自动化·制造
筝筝ba2 小时前
Configure IP Address Via Different User Roles And Verify(1)
服务器
QH139292318802 小时前
NVIDIA H200 H300服务器
运维·服务器·开发语言·网络·信息与通信
xixiaoyunya2 小时前
中小微企业轻量组网方案的技术选型与实践:从传统专线到软定义隧道的成本与效能分析
服务器·php·apache