富阳网站建设推广,如何一键打开多个wordpress,小型服务器做网站,建筑工程承包网址大全第三章 远程连接服务器
1、远程连接服务器简介
#xff08;1#xff09;什么是远程连接服务器 远程连接服务器通过文字或图形接口方式来远程登录系统#xff0c;让你在远程终端前登录 linux 主机以取得可操作主机接口#xff08;shell #xff09;#xff0c;而登录后…第三章 远程连接服务器
1、远程连接服务器简介
1什么是远程连接服务器 远程连接服务器通过文字或图形接口方式来远程登录系统让你在远程终端前登录 linux 主机以取得可操作主机接口shell 而登录后的操作感觉就像是坐在系统前面一样。 2远程连接服务器的功能 分享主机的运算能力 3远程连接服务器的类型以登录的连接界面来分类 文字接口 明文传输 Telnet 、 RSH 等目前非常少用 加密传输 SSH 为主已经取代明文传输 图形接口 XDMCP 、 VNC 、 XRDP 等 4文字接口连接服务器 SSH Secure Shell Protocol 安全的壳程序协议它可以通过数据包加密技术将等待传输的数据包加密后再传输到网络上。ssh 协议本身提供两个服务器功能一个是类似 telnet 的远程连接使用 shell 的服务器另一个就是类似ftp 服务的 sftp-server 提供更安全的 ftp 服务。 2、连接加密技术简介 目前常见的网络数据包加密技术通常是通过 “ 非对称密钥系统 ” 来处理的。主要通过两把不一样的公钥与 私钥来进行加密与解密的过程 。 公钥 public key 提供给远程主机进行数据加密的行为所有人都可获得你的公钥来将数据加密。 私钥 private key 远程主机使用你的公钥加密的数据在本地端就能够使用私钥来进行解密。私钥 只有自己拥有。 SSH 工作过程在整个通讯过程中为实现 SSH 的安全连接服务端与客户端要经历如下五个阶段 1版本协商阶段 1 、服务器端打开端口 22 等待客户端连接 2 、客户端向服务器端发起 TCP 初始连接请求 TCP 连接建立后服务器向客户端发送第一个报文包括版 本标志字符串格式为 “SSH- 主协议版本号 . 次协议版本号 . 软件版本号 ” 协议版本号由主版本号 和次版本号组成软件版本号主要是为调试使用。 3 、客户端收到报文后解析该数据包如果服务器的协议版本号比自己的低且客户端能支持服务器端的 低版本就使用服务器端的低版本协议号否则使用自己的协议版本号。 4 、客户端回应服务器一个报文包含了客户端决定使用的协议版本号。服务器比较客户端发来的版本号 决定是否能同客户端一起工作。如果协商成功则进入密钥和算法协商阶段否则服务器断开 TCP 连接。 说明上述报文都是采用明文方式传输。 2密钥和算法协商阶段 1 、服务器端和客户端分别发送算法协商报文给对端报文中包含自己支持的公钥算法列表、加密算法列 表、 MAC Message Authentication Code 消息验证码算法列表、压缩算法列表等等。 2 、服务器端和客户端根据对端和本端支持的算法列表得出最终使用的算法。 3 、服务器端和客户端利用 DH 交换 Diffie-Hellman Exchange 算法、主机密钥对等参数生成会话 密钥和会话 ID 。 由此服务器端和客户端就取得了相同的会话密钥和会话 ID 。对于后续传输的数据两端都会使用会话密 钥进行加密和解密保证了数据传送的安全。在认证阶段两端会使用会话用于认证过程。 3认证阶段 SSH 提供两种认证方法 基于口令的认证 password 认证客户端向服务器发出 password 认证请求将用户名和密码加密后发 送给服务器服务器将该信息解密后得到用户名和密码的明文与设备上保存的用户名和密码进行比较 并返回认证成功或失败消息。 基于密钥的认证 publickey 认证客户端产生一对公共密钥将公钥保存到将要登录的服务器上的那 个账号的家目录的 .ssh/authorized_keys 文件中。认证阶段客户端首先将公钥传给服务器端。服务 器端收到公钥后会与本地该账号家目录下的 authorized_keys 中的公钥进行对比如果不相同则认证 失败否则服务端生成一段随机字符串并先后用客户端公钥和会话密钥对其加密发送给客户端。客户 端收到后将解密后的随机字符串用会话密钥发送给服务器。如果发回的字符串与服务器端之前生成的一 样则认证通过否则认证失败。 注服务器端对客户端进行认证如果认证失败则向客户端发送认证失败消息其中包含可以再次认证 的方法列表。客户端从认证方法列表中选取一种认证方法再次进行认证该过程反复进行。直到认证成功 或者认证次数达到上限服务器关闭连接为止。 3、ssh服务配置 [rootserver1 ~]# vim /etc/ssh/sshd_config
17.#Port 22 #监听端口默认监听22端口 【默认可修改】
18.#AddressFamily any #IPV4和IPV6协议家族用哪个any表示二者均有
19.#ListenAddress 0.0.0.0 #指明监控的地址0.0.0.0表示本机的所有地址 【默认可修改】
20.#ListenAddress :: #指明监听的IPV6的所有地址格式
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私钥认证
43.SyslogFacility AUTHPRIV #当有人使用ssh登录系统的时候SSH会记录信息信息保存
在/var/log/secure里面
48.#LoginGraceTime 2m #登录的宽限时间默认2分钟没有输入密码则自动断开连接
49.#PermitRootLogin yes #是否允许管理员远程登录yes表示允许
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 #登录白名单默认没有这个配置需要自己手动添加允许远程
登录的用户。如果名单中没有的用户则提示拒绝登录 4、用户登录ssh服务器 实验1修改ssh服务的端口号 #修改ssh服务的端口号
[rootserver1 ~]# vim /etc/ssh/sshd_config
Port 2222
[rootserver1 ~]# systemctl disable --now firewalld
[rootserver1 ~]# setenforce 0
[rootserver1 ~]# getenforce
Permissive
[rootserver1 ~]# systemctl restart sshd 实验2拒绝root用户远程登陆 #请保持服务器上至少有一个可以远程登陆的普通远程账号
#修改配置文件如下
#打开该选项并修改参数为no
PermitRootLogin no
#重启服务后生效使用时使用普通用户进行登陆需要使用root用户时再切换
#说明注意新版本rhel9中的/etc/ssh/sshd_config和/etc/ssh/sshd_config.d/*.conf中的
配置 实验3允许特定用户ssh登陆其他用户都无法登陆 #编辑配置文件在最后添加如下内容
AllowUsers USERNAME
#USERNAME为你允许登陆的账号【需要在系统中useradd该账号】如果是多个用户中间用空格隔开
#重启ssh服务后生效 实验4linux客户端通过秘钥登录linux服务端root用户 #创建密钥对
[rootweb ~]# ssh-keygen -t rsa
ssh-keygen 生成、管理和转换认证密钥 -t制定类型 RSA
/root/.ssh/id_rsa私钥文件
/root/.ssh/id_rsa.pub公钥文件
#复制该公钥文件到服务端的该目录下
[rootweb ~]# ssh-copy-id root192.168.40.132
#在本地服务器上登陆对端服务器
[rootweb ~]# ssh root192.168.40.132