远程连接服务器的类型 | |
文字接口 | 明文传输:Telnet 23、RSH等,目前非常少用; 加密传输:SSH为主,已经取代明文传输 ssh提供两个服务器功能:1.类似于telnet;2.类似于ftp的sftp-server(安全) |
图形接口 | XDMCP远程控制、VNC(RFB)、 XRDP(RDP3389)远程桌面 |
加密分为对称加密和非对称加密
对称加密:不安全但节约资源,效率高。同一秘钥既可以进行加密也可以进行解密。(双向传输)
非对称密钥:(单向认证)
公钥(public key):提供给远程主机进行数据加密的行为,所有人都可获得你的公钥来将数据加密;
私钥(private key):远程主机使用你的公钥加密的数据,在本地端就能够使用私钥来进行解密。私钥只有自己拥有,耗费资源。
公钥加密and私钥解密
远程登陆的加密技术的过程:
第一阶段:TCP三次握手版本协商过阶段
SSH1和SSH2两个版本,双方通过版本协商确定使用的版本。服务端向客户端发送报文协商版本,客户端查看版本是否对上。
第二阶段:协商算法和确定对称秘钥阶段
SSH支持多种加密算法,双方根据本端和对端支持的算法,协商出最终使用的算法
确认秘钥和加密算法;进行秘钥交换
第三阶段:认证阶段
SSH客户端向服务端发起认证请求,服务端对客户端进行认证
(分为基于口令认证和基于公钥认证)
第四阶段:会话请求阶段
认证通过后,客户端向服务器端发送会话请求,建立新的连接
第五阶段:交互会话阶段
会话请求通过后,服务器端和客户端进行信息的交互
SSH的配置
/etc/ssh/sshd_config里面的配置信息
Port 22 | 默认监听22端口 |
AddressFamily any | IPV4和IPV6协议家族 |
ListenAddress 0.0.0.0 | 指明监控的地址,0.0.0.0表示本机的所有地址 |
ListenAddress :: | 指明监听的IPV6 |
HostKey /etc/ssh/ssh_host_rsa_key | rsa私钥认证 |
HostKey /etc/ssh/ssh_host_dsa_key | dsa私钥认证 |
HostKey /etc/ssh/ssh_host_ecdsa_key | ecdsa私钥认证 |
HostKey /etc/ssh/ssh_host_ed25519_key | ed25519私钥认证 |
SyslogFacility AUTHPRIV | ssh的登录信息保存在/var/log/secure里面 |
LoginGraceTime 2m | 登录的宽限时间 |
PermitRootLogin yes | 是否允许管理员远程登录 |
MaxAuthTries 6 | 最大认证尝试次数 |
MaxSessions 10 | 允许的最大会话数 |
AuthorizedKeysFile .ssh/authorized_keys | 公钥放到.ssh/authorizd_keys |
PasswordAuthentication yes | 是否允许支持基于口令的认证 |
ChallengeResponseAuthentication no | 是否允许xshell的第三个登录方式 |
UseDNS yes | 是否反解DNS |
Subsystem sftp /usr/libexec/openssh/sftp-server | 支持 SFTP |
AllowUsers user1 user2 | 登录白名单 |
ssh命令
创建密钥对:
ssh-keygen
复制该公钥文件到服务端的该目录下:
ssh-copy-id root@192.168.150.139
在本地服务器上登陆对端服务器:
ssh root@192.168.150.139