远程连接服务器

什么是远程连接服务器
远程连接服务器通过文字或图形接口方式来远程登录系统,让你在远程终端前登录linux主机以取得可操作主机接口(shell),而登录后的操作感觉就像是坐在系统前面一样。telnet、
SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
远程连接服务器的功能
1)分享主机运算能力
2)服务器类型有限度开放连接
3)工作站类型,只对内网开放
常见的远程管理工具方式:
RDP(remote desktop protocal )协议,windows远程桌面管理(图形界面),端口号:3389
telenet CLI界面下远程管理,几乎所有操作系统都有(内容明文传输),端口号: 23
ssh CLI界面下的远程管理,几乎所有操作系统都有(内容加密传输) 类unix系统下主要 端口号:22
远程管理方式(linux BSD Macos)
RFB (remote frame buffer) 图形化远程管理协议 VNC (Virtual Network Computing)使用的协议。(在linux unix Macos 下的图形界面远程管理工具),端口号:5900
SSH

  • SSH代表安全外壳(Secure Shell),它现在是通过互联网访问网络设备和服务器的唯一的主要协议。
  • SSH默认情况下通过端口22运行;不过很容易更改这个端口。
  • SSH是一种非常安全的协议,因为它共享并发送经过加密的信息,从而为通过互联网等不安全的网络访问的数据提供了机密性和安全性。
  • 一旦通讯的数据使用SSH经过加密,就极难解压和读取该数据,所以我们的密码在公共网络上传输也变得很安全。
  • SSH还使用公钥用于对访问服务器的用户验证身份,这是一种很好的做法,为我们提供了极高的安全性。
  • SSH主要用在所有流行的操作系统上,比如Unix、Solaris、Red-Hat Linux、CentOS和Ubuntu等。
  • ssh服务端由2部分组成: openssh(提供ssh服务) openssl(提供加密的程序) sftp 22
  • ssh的客户端可以用 XSHELL,Securecrt, Mobaxterm等工具进行连接,ssh sftp
    TELNET
  • Telnet是电信(Telecommunications)和网络(Networks)的联合缩写,这是一种在UNIX平台上最为人所熟知的网络协议。
  • Telnet使用端口23 ,它是专门为局域网设计的。
  • Telnet不是一种安全通信协议,因为它并不使用任何安全机制,通过网络/互联网传输明文格式的数据,包括密码,所以谁都能嗅探数据包,获得这个重要信息。
  • Telnet中没有使用任何验证策略及数据加密方法,因而带来了巨大的安全威胁,这就是为什么telnet不再用于通过公共网络访问网络设备和服务器。

Ssl/tls (Transport Layer Security 传输层安全协议)
Secure Socket Layer,为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听。一般通用之规格为40 bit之安全标准,美国则已推出128 bit之更高安全标准,但限制出境。只要3.0版本以上之I.E.或Netscape浏览器即可支持SSL。
当前版本为3.0。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。
SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
ssl提供服务
1)认证用户和服务器,确保数据发送到正确的客户机和服务器; 握手协议
2)加密数据以防止数据中途被窃取; ssl记录协议
3)维护数据的完整性,确保数据在传输过程中不被改变。
加密技术:
对称密钥加密------共享密钥加密(对称密钥加密):加密和解密同用一个密钥。加密时就必须将密钥传送给对方,那么如何安全的传输呢—md5 ------------> 核心是:加密类型
非对称密钥加密系统—公开密钥加密(非对称密钥加密):公开密钥加密使用一对非对称的密钥。一把叫做私有密钥,一把叫做公开密钥。私有密钥不能让其他任何人知道,而公开密钥则可以随意发布,任何人都可以获得。使用此加密方式,发送密文的一方使用公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。利用这种方式,不需要发送用来解密的私有密钥,也不必担心密钥被攻击者窃听盗走 ------------->核心是:算法RSA
区别:
1)非对称加密与对称加密的不同之处在于,为了在单个方向上发送数据,需要两个相关的一组密钥。其中一个密钥称为私钥,而另一个称为公钥。
2)非对称加解密的效率要远远小于对称加解密
3)非对称秘钥相比对称秘钥更加安全

PFX :公钥加密技术12号标准(Public Key Cryptography Standards #12,PKCS#12)为存储和传输用户或服务器私钥、公钥和证书指定了一个可移植的格式。它是一种二进制格式,这些文件也称为PFX文件。
CER: 用于存储公钥证书的文件格式
RSA:算法是一种非对称密码算法
PKI(Public Key Infrastructure ) 即"公钥基础设施",是一种遵循既定标准的密钥管理平台,它能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理体系,简单来说,PKI就是利用公钥理论和技术建立的提供安全服务的基础设施。PKI技术是信息安全技术的核心,也是电子商务的关键和基础技术。
/etc/pki/tls/certs
PKI体系能够实现的功能有:
(1)身份认证
(2) 数据完整性
(3) 数据机密性
(4) 操作的不可否认性

ssh两种验证级别:openssh openssl
从客户端来看,SSH提供两种级别的安全验证。
第一种级别(基于口令的安全验证)
只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。

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

远程连接服务器的redis 远程连接服务器的作用_linux


ssh特点

(1)ssh服务端由2部分组成: openssh(提供ssh服务) openssl(提供加密的程序) ssh root@ip

(2)ssh的客户端可以用 XSHELL,Securecrt, Mobaxterm等工具进行连接

SSH的工作机制

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

SSH的加密技术

加密技术:传输过程,数据加密。

1.SSH1没有对客户端的秘钥进行校验,很容易被植入恶意代码

2.SSH2增加了一个确认联机正确性的Diffe_Hellman机制,每次数据的传输,Server都会检查数据来源的正确性,避免黑客入侵。

SSH2支持RSA和DSA密钥

DSA:digital signature Algorithm 数字签名

RSA:既可以数字签名又可以加密

SSH功能特点

1.SSH是安全的加密协议,用于远程连接Linux服务器

2.SSH的默认端口是22,安全协议版本是SSH2

3.SSH服务器端主要包含2个服务功能SSH连接和SFTP服务器 xftp

4.SSH客户端包含ssh连接命令和远程拷贝scp命令等 ssh scp

ssh命令使用

客户端 ssh

1.登录:

ssh 172.24.8.131

ssh root@172.24.8.131

ssh -p 22 root@172.24.8.131

2.直接执行命令 -->最好全路径

ssh root@172.24.8.131 ls -l /mnt

==>ssh root@192.168.25.137 /bin/ls -ltr /backup/data

3.查看已知主机

cat /root/.ssh/known_hosts

ssh自带的sftp功能

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

windows中可以使用Core FTP,FileZilla, WinSCP,Xftp来连接SFTP进行上传,下载文件,建立,删除目录等操作。

1.Window和Linux的传输工具

wincp filezip

sftp -->基于ssh的安全加密传输

2.sftp客户端连接

sftp -o Port=22 root@192.168.25.137 lftp

> put /etc/hosts /tmp

> get /etc/hosts /home/omd

3.sftp小结:

1.linux下使用命令: sftp -o Port=22 root@x.x.x.x

2.put加客户端本地路径上传

3.get下载服务器端内容到本地

4.远程连接默认连接用户的家目录

客户端scp 跨机远程拷贝
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。两台主机之间复制文件必需得同时有两台主机的复制执行帐号和操作权限。
scp一般用法
1)本地复制远程文件:(把远程的文件复制到本地)
scp root@www.test.com:/val/test/test.tar.gz /val/test/test.tar.gz
2)远程复制本地文件:(把本地的文件复制到远程主机上)
scp /val/test.tar.gz root@www.test.com:/val/test.tar.gz
3)本地复制远程目录:(把远程的目录复制到本地)
scp -r root@www.test.com:/val/test/ /val/test/
4)远程复制本地目录:(把本地的目录复制到远程主机上)
scp -r ./ubuntu_env/ root@192.168.0.111:/home/pipi
案例一:修改ssh服务端口号

vim /etc/ssh/sshd_config
Port 2222
:wq   //保存退出
systemctl restart sshd     //重启服务生效

案例二:拒绝root用户远程登陆

vim /etc/ssh/sshd_config
PermitRootLogin no
:wq  //保存退出
systemctl restart sshd     //重启服务生效

案例三:允许特定用户ssh登录,其他用户无法登录
修改配置文件:

vim /etc/ssh/sshd_confog
AllowUsers haha  //如果是多个用户,中间用空格隔开
:wq     //保存退出
systemctl restart sshd   //重启服务生效

案例四:虚拟机和虚拟机之间实现ssh互信,免密登陆

ssh-keygen -t rsa   //创建密钥对     ssh-keygen:生成、管理和转换认证密钥  -t:制定类型   算法:RSA
cd /root/.ssh/id_rsa    //证书的目录
/root/.ssh/id_rsa.pub   //默认创建的公钥文件
[root@web ~]# scp /root/.ssh/id_rsa.pub root@192.168.198.128:/root/.ssh/authorized_keys2)ssh-copy-id -i id_dsa.pub  root@192.16.8.198.128 //复制该公钥文件到另一端服务器的该目录下
[root@web ~]# ssh 192.168.40.132   //在本地服务器上登陆另一端服务器

案例五:通过xshell使用证书进行登录

[root@web ~]# ssh-keygen -t rsa -b 4096  //使用该命令创建证书
[root@web .ssh]# scp id_rsa.pub authorized_keys
#然后将私钥下载到本地系统,等下用
#如果sftp登陆的时候无法成功,请恢复之前修改的ssh服务配置
#在windows系统上使用xshell创建新会话,使用公钥进行免密登陆
#取消使用密码进行远程登陆
PasswordAuthentication no
#修改配置文件保存退出,重启服务
systemctl restart sshd