什么是远程连接服务器

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

远程连接服务器的功能

  • 分享主机运算能力
  • 服务器类型有限度开放连接
  • 工作站类型,只对内网开放

常见远程连接工具

  • RDP(remote desktop protocal )协议,windows远程桌面管理(图形界面)
  • elenet CLI界面下远程管理,几乎所有操作系统都有(内容明文传输),端口 : 23
  • ssh CLI界面下的远程管理,几乎所有操作系统都有(内容加密传输) 类unix系统下主要 ,端口: 22
  • RFB (remote frame buffer) 图形化远程管理协议 VNC (Virtual NetworkComputing)使用的协议。(在linux unix Macos 下的图形界面远程管理工具)

如何实现拒绝用户远程连接

  1. vim /etc/passwd修改当前用户的shell为:/sbin/nolongin
  2. usermod -L 锁定       -U实现解锁
  3. passwd -l 锁定用户密码

SSH

SSH(Secure Shell Protocol,安全的壳程序协议) 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程 序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。

SSH验证方式

基于口令的安全验证

只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。

基于密匙的安全验证

需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。

SSH特点

  • 是安全的加密协议,用于远程连接Linux服务器
  • 默认端口是22,安全协议版本是SSH2
  • 服务器端主要包含2个服务功能SSH连接和SFTP服务器
  • SSH客户端包含ssh连接命令和远程拷贝scp命令等

ssh连接过程图


总结:

ssh配置文件详解

[root@redhat ~]# vim /etc/ssh/sshd_config

:set nu 设置行号展示如下:

17.#Port 22       监听端口,默认监听22端口 【默认可修改】
18.#AddressFamily any       IPV4和IPV6协议家族用哪个,any表示二者均有
19.#ListenAddress 0.0.0.0       指明监控的地址,0.0.0.0表示本机的所有地址 【默认可修改】
20.#ListenAddress ::       指明监听的IPV6的所有地址格式
22.# The default requires explicit activation of protocol 1
23.#Protocol 2       使用SSH第二版本
25.# HostKey for protocol version 1       一版的SSH支持以下一种秘钥形式
26.#HostKey /etc/ssh/ssh_host_key     
27.# HostKeys for protocol version 2       使用第二版本发送秘钥,支持以下四种秘钥认证的存放位置
28.HostKey /etc/ssh/ssh_host_rsa_key       rsa私钥认证 【默认】
29.#HostKey /etc/ssh/ssh_host_dsa_key       dsa私钥认证
30.HostKey /etc/ssh/ssh_host_ecdsa_key       ecdsa私钥认证
31.HostKey /etc/ssh/ssh_host_ed25519_key       ed25519私钥认证
35.#ServerKeyBits 1024       主机秘钥长度
40.# Logging
41.# obsoletes QuietMode and FascistLogging
42.#SyslogFacility AUTH
43.SyslogFacility AUTHPRIV       当有人使用ssh登录系统的时候,SSH会记录信息,信息保存在/var/log/secure里面
44.#LogLevel INFO       日志的等级
45.# Authentication:
48.#LoginGraceTime 2m       登录的宽限时间,默认2分钟没有输入密码,则自动断开连接
49.#PermitRootLogin yes       是否允许管理员远程登录,'yes’表示允许
50.#StrictModes yes       是否让sshd去检查用户主目录或相关文件的权限数据
51.#MaxAuthTries 6       最大认证尝试次数,最多可以尝试6次输入密码。之后需要等待某段时间后才能再次输入密码
52.#MaxSessions 10       允许的最大会话数
59.AuthorizedKeysFile .ssh/authorized_keys       选择基于密钥验证时,客户端生成一对公私钥之后,会将公钥放到.ssh/authorizd_keys里面
79.PasswordAuthentication yes       是否允许支持基于口令的认证
83.ChallengeResponseAuthentication no       是否允许使用键盘输入身份验证,也就是xshell的第三个登录方式
129.#UseDNS yes       是否反解DNS,如果想让客户端连接服务器端快一些,这个可以改为no
146.Subsystem sftp /usr/libexec/openssh/sftp-server       支持 SFTP ,如果注释掉,则不支持sftp连接
154.AllowUsers user1 user2       登录白名单(默认没有这个配置,需要自己手动添加),允许远程登录的用户。如果名单中没有的用户,则提示拒绝登录

加密技术

  • 对称密钥加密------共享密钥加密(对称密钥加密):

加密和解密同用一个密钥,加密时就必须将密钥传送给对方

  • 非对称密钥加密系统—公开密钥加密(非对称密钥加密):

公开密钥加密使用一对非对称的密钥。

一把叫做私有密钥,一把叫做公开密钥。私有密钥不能让其他任何人知道,而公开密钥则可以随意发布,任何人都可以获得。使用此加密方式,发送密文的一方使用公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。利用这种方式,不需要发送用来解密的私有密钥,也不必担心密钥被攻击者窃听盗走

区别:

  • 非对称加密与对称加密的不同之处在于,为了在单个方向上发送数据,需要两个相关的一组密钥。其中一个密钥称为私钥,而另一个称为公钥。
  • 非对称加解密的效率要远远小于对称加解密
  • 非对称秘钥相比对称秘钥更加安全

SFTP协议

SFTP (Secure File Transfer Protocol)的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多。

上传/下载文件的格式:
将文件由本机上传到远程主机:put [本机文件] ,文件会存储到当前远程主机的目录下。
将文件由远程主机下载下来:get [远程主机文件],文件会存储在当前本机所在的目录当中。

TELNET

Telnet是电信(Telecommunications)和网络(Networks)的联合缩写,这是一种在UNIX平台上最为人所熟知的网络协议。
Telnet使用端口23,它是专门为局域网设计的。
     Telnet不是一种安全通信协议,因为它并不使用任何安全机制,通过网络/互联网传输明文格式的数据,包括密码,所以谁都能嗅探数据包,获得这个重要信息。
     Telnet中没有使用任何验证策略及数据加密方法,因而带来了巨大的安全威胁,这就是为什么telnet不再用于通过公共网络访问网络设备和服务器。

案例

1、修改ssh服务端口号

修改配置文件

[root@redhat ~]# vim /etc/ssh/sshd_conf
Port 2222

重启服务、关闭防火墙

[root@redhat ~]# systemctl restart sshd
[root@redhat ~]# systemctl stop firewalld

测试

[root@redhat ~]# ssh 192.168.159.128 -p 2222

2、拒绝root用户远程登录

修改配置文件

[root@redhat ~]# vim /etc/ssh/sshd_config
PermitRootLogin no

重启服务

[root@redhat ~]# systemctl restart sshd

测试
重复提示重新输入密码实则已经拒绝

[root@redhat ~]# ssh root@192.168.159.128
root@192.168.159.128's password:
Permission denied, please try again.
root@192.168.159.128's password:
Permission denied, please try again.
root@192.168.159.128's password:
Permission denied, please try again.

3、允许特定用户ssh登录,其他用户都无法登录
修改配置文件

[root@redhat ~]# vim /etc/ssh/sshd_config
//追加如下
AllowUsers huang

重启服务

[root@redhat ~]# systemctl restart sshd

测试

[root@redhat ~]# ssh huang@192.168.159.128
huang@192.168.159.128's password:

密登录
创建密钥对
ssh-keygen - 生成、管理和转换认证密钥 -t制定类型 RSA
如果不指定一直回车即可

[root@redhat ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):   //指定密钥存放路径,不指定回车即可
Enter passphrase (empty for no passphrase):   //指定密钥密码,不指定回车即可
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:0xEi2dFHT113d92Ng4HFjNpKOrNd1RavKaL95prG9WI root@redhat
The key's randomart image is:
+---[RSA 3072]----+
|      .ooo.B+o.o@|
|      ....+.=o+ X|
|         o.. ..+ |
|        o.... o .|
|       oS... . o |
|      + ..o o o  |
|       = = o o   |
|      . o +.E .  |
|         .o*o.   |
+----[SHA256]-----+
[root@redhat ~]# ll /root/.ssh/
total 8
-rw-------. 1 root root 2590 Sep  2 23:20 id_rsa
-rw-r--r--. 1 root root  565 Sep  2 23:20 id_rsa.pub

对端是否有.ssh目录,没有则创建

[root@bogon ~]# mkdir .ssh

复制该公钥文件到对端的该目录下
注意:对端需要有这个目录否则无法实现传输

[root@redhat ~]#  scp /root/.ssh/id_rsa.pub root@192.168.159.135:/root/.ssh/authorized_keys
root@192.168.159.135's password:
id_rsa.pub                                                                         100%  565   442.4KB/s   00:00

对端查看是否有这个密钥文件

[root@bogon ~]# ll /root/.ssh
total 4
-rw-r--r--. 1 root root 565 Sep  2 23:33 authorized_keys

测试

[root@redhat ~]# ssh 192.168.159.135
Last login: Thu Sep  2 22:00:21 2021 from 192.168.159.1
[root@bogon ~]#    //对端

第二种发送公钥文件的方式此方式需要指定对端的目录,自动创建

[root@redhat ~]# ssh-copy-id /root/.ssh/ -i 192.168.159.135
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: ERROR: Too many arguments.  Expecting a target hostname, got: '/root/.ssh/' '192.168.159.135'Usage: /usr/bin/ssh-copy-id [-h|-?|-f|-n] [-i [identity_file]] [-p port] [[-o <ssh -o options>] ...] [user@]hostname-f: force mode -- copy keys without trying to check if they are already installed-n: dry run    -- no keys are actually copied-h|-?: print this help
[root@redhat ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub  192.168.159.135
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.159.135's password: Number of key(s) added: 1Now try logging into the machine, with:   "ssh '192.168.159.135'"
and check to make sure that only the key(s) you wanted were added.

对端查看

[root@bogon ~]# ll .ssh
total 4
-rw-------. 1 root root 565 Sep  3 00:21 authorized_keys

测试跟第一种方式一样

5、通过xshell使用证书进行登录




保存文件到桌面


点击完成后

linux端的.ssh目录使用rz收取公钥文件



重命名

[root@redhat .ssh]# ll
total 16
-rw-------. 1 root root 2590 Sep  2 23:20 id_rsa
-rw-r--r--. 1 root root  548 Sep  3 01:06 id_rsa_3072.pub
-rw-r--r--. 1 root root  565 Sep  2 23:20 id_rsa.pub
-rw-r--r--. 1 root root  177 Sep  2 23:28 known_hosts
[root@redhat .ssh]# mv id_rsa_3072.pub authorized_keys
[root@redhat .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub  known_hosts

测试

6、客户端使用sftp实现文件传输

put加载客户端本地路径上传
get下载服务器端内容到本地
远程连接默认连接到用户的家目录

[root@redhat ~]# sftp 192.168.159.135
Connected to 192.168.159.135.
sftp>  //按tab补出
bye       cd        chdir     chgrp     chmod     chown     df        dir       exit      get       help
lcd       lchdir    lls       lmkdir    ln        lpwd      ls        lumask    mkdir     mget      mput
progress  put       pwd       quit      reget     rename    reput     rm        rmdir     symlink   version
!         ?
sftp> pwd
Remote working directory: /root
sftp> ls  //查看135主机家目录中的文件
Desktop                Documents              Downloads              Music                  Pictures
Public                 Templates              Videos                 anaconda-ks.cfg

使用telnet实现登录

装服务

[root@redhat ~]# yum install telnet-server -y

启服务

[root@redhat ~]# systemctl restart telnet.socket

使用xshell新建telnet协议的会话

Linux之远程连接服务器ssh、telnet相关推荐

  1. 远程连接服务器---SSH详解

    对于系统管理员来说,远程连接服务器是一个很有用的操作,它使得服务器管理变得更加方便. 下面我就来科普一下有关远程连接服务器的知识: 目前,远程连接服务器的类型有以下几种: ① 文字接口的明文传输:Te ...

  2. [linux] mac远程连接服务器jupyter 报错

    1.用zentermlite登录远程服务器 2.生成配置文件 $ jupyter notebook --generate-config 3.生成密码 打开ipython,在ipython环境下创建一个 ...

  3. 远程登陆服务器----ssh远程传输文件

    1 在服务器端安装ssh-server sudo apt-get install openssh-server 2 远程连接服务器 ssh -l username ip 3 退出远程连接 exit 4 ...

  4. 【已解决】linux ssh 远程连接服务器,出现登陆慢、打字卡顿输入卡顿解决方案

    目录&索引 问题描述 解决方案 登陆慢 方法 1:修改配置文件 nsswitch_conf 方法 2:修改配置文件 sshd_config UseDNS 方法 3:修改配置文件 sshd_co ...

  5. Linux中怎么搭建SSH远程连接服务器

    文章目录 Linux中怎么搭建SSH远程连接服务器 一.远程连接服务器: 1.什么是远程连接服务器: 2.远程连接服务器的功能 3.常见的几种远程管理工具方式: 二.SSH连接加密技术: 1.非对称密 ...

  6. 鸟哥的Linux私房菜(服务器)- 第十一章、远程联机服务器SSH / XDMCP / VNC / RDP

    第十一章.远程联机服务器SSH / XDMCP / VNC / RDP 最近更新日期:2011/11/24 维护网络服务器最简单的方式不是跑去实体服务器前面登入,而是透过远程联机服务器联机功能来登入主 ...

  7. Linux远程联机服务器SSH VNC XDMCP RDP

    远程联机服务器SSH / XDMCP / VNC / RDP 利用SSH,telnet,VNC等方式取得的文字或图形shell能够进行很多系统管理的任务,与单纯的FTP能进行的工作当然不同 远程服务联 ...

  8. ssh远程连接服务器

    文章目录 第三章 远程连接服务器 1.1 远程连接服务器简介 1.2 连接加密技术简介 1.3 ssh远程连接服务简介 1.4 sftp用法介绍 1.5 实验 作业: 第一题:两台机器:第一台机器作为 ...

  9. 第四章:ssh远程连接服务器

    目录 远程连接服务器简介ssh 连接加密技术简介 非对称加密的一对密钥位置路径 SSH工作流程: 一.版本协商阶段 二.密钥和算法协商阶段 会话密钥的生成: 三.认证阶段 SSH提供两种认证方法: s ...

  10. Linux远程连接服务器

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

最新文章

  1. C++_泛型编程与标准库(二)
  2. 服务器更改IP(公网)地址后,Program Neighborhood客户端无法连接服务器
  3. 设计模式--六大原则
  4. NLP模型压缩六大方法介绍
  5. NYOJ 640 Geometric Sum
  6. OpenCASCADE:形状愈合之用于修复、分析和升级的辅助工具
  7. 【图像去模糊】 deconvolution总结
  8. no identity found Command /usr/bin/codesign failed with exit code 1 报错解决方法
  9. Caffe机器学习框架
  10. ShortcutMapper 是应用程序的键盘快捷键
  11. oracle windows 优化工具,使用某Windows优化大师对Windows2000操作系统进行了优化,优化完成之后,oracle数据库便无法正常工作...
  12. 微信车主服务代扣的坑
  13. 高考是不是计算机投档,1:1高考投档是什么意思 填报志愿注意事项
  14. mov文件如何转换成mp4?巧用嗨格式视频转换器
  15. 我在低处仰望,梦过尘世幻想。
  16. 如何将LaTeX公式拷贝到Word中
  17. 《快速掌握PyQt5》
  18. AutoCAD CSCAD注册命令类型的控制
  19. 记录TPTP监控tomcat
  20. 1024-开启人工智能学习之旅

热门文章

  1. 深度学习2.0-10.tensorflow的高阶操作之张量的限幅
  2. Pandas文件读取详解
  3. LeetCode刷题——392. 判断子序列
  4. HTML - 元素/标签和属性基础
  5. linux命令:常用shell命令及应用
  6. python web框架 - Django
  7. linux返回值含义,linux命令返回值的含义解析
  8. python中按位运算符_Python中的按位运算符详解
  9. Android【报错】Failed to resolve: com.android.support:appcompat-v7:28.0.0-alpha【报错】
  10. C#窗体间传值的简便方法/工具