概述
SSH-远程连接工具(Secure Shell)
服务器与个人计算机不同一般都是运行在IDC机房中,所以我们通常不会直接接触服务器硬件,而是通过各种远程管理方式对服务其进行控制。
常见的远程管理工具方式:
- RDP(remote desktop protocal )协议,windows远程桌面管理(图形界面)
- telenet CLI界面下远程管理,几乎所有操作系统都有(内容明文传输)
- ssh CLI界面下的远程管理,几乎所有操作系统都有(内容加密传输) 类unix系统下主要远程管理方式(linux BSD Macos)
- RFB (remote framebuffer) 图形化远程管理协议 VNC (Virtual Network Computing)使用的协议。(在linux unix Macos 下的图形界面远程管理工具)
SSH服务器的介绍
SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
SSH与telnet的区别:
SSH
- SSH代表安全外壳(Secure Shell),它现在是通过互联网访问网络设备和服务器的唯一的主要协议。
- SSH默认情况下通过端口22运行;不过,很容易更改这个端口。
- SSH是一种非常安全的协议,因为它共享并发送经过加密的信息,从而为通过互联网等不安全的网络访问的数据提供了机密性和安全性。
- 一旦通讯的数据使用SSH经过加密,就极难解压和读取该数据,所以我们的密码在公共网络上传输也变得很安全。
- SSH还使用公钥用于对访问服务器的用户验证身份,这是一种很好的做法,为我们提供了极高的安全性。
- SSH主要用在所有流行的操作系统上,比如Unix、Solaris、Red-Hat Linux、CentOS和Ubuntu等。
TELNET
- Telnet是电信(Telecommunications)和网络(Networks)的联合缩写,这是一种在UNIX平台上最为人所熟知的网络协议。
- Telnet使用端口23,它是专门为局域网设计的。
- Telnet不是一种安全通信协议,因为它并不使用任何安全机制,通过网络/互联网传输明文格式的数据,包括密码,所以谁都能嗅探数据包,获得这个重要信息。
- Telnet中没有使用任何验证策略及数据加密方法,因而带来了巨大的安全威胁,这就是为什么telnet不再用于通过公共网络访问网络设备和服务器。
非对称密钥加密系统,又称公钥密钥加密。非对称加密为数据的加密与解密提供了一个非常安全的方法,它使用了一对密钥,公钥(public key)和私钥(private key)。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。
对称密钥加密,又称私钥加密,即信息的发送方和接收方用一个密钥去加密和解密数据
SSH 的具体配置:
- 用户身份
- 证书验证
安装包名为:openssh-server
[root@localhost httpd]# yum install openssh-server -y
配置文件:/etc/ssh
[root@localhost httpd]# vim /etc/ssh/sshd_config
一:ssh 互信,免登陆
#确保防火墙为关闭状态
#确保selinux为关闭状态
#创建秘钥对
[root@B ~]# ssh-keygen -t rsa
ssh-keygen - 生成、管理和转换认证密钥 -t制定类型 RSA
#证书的目录
/root/.ssh/id_rsa
#默认创建的公钥文件
/root/.ssh/id_rsa.pub
#复制该公钥文件到对端的该目录下:
[root@B ~]# scp /root/.ssh/id_rsa.pub root@192.168.100.128:/root/.ssh/authorized_keys
#在本地服务器上登陆对端服务器:
[root@B ~]# ssh 192.168.100.128
二:修改ssh服务端口号
#修改ssh服务的端口号
[root@web ~]# vi /etc/ssh/sshd_config
Port 2222
#保存退出后,添加防火墙允许策略
[root@web ~]# firewall-cmd --permanent --add-port=2222/tcp
success
[root@web ~]# firewall-cmd --reload
#添加自定义端口到服务
[root@web ~]# semanage port -a -t ssh_port_t -p tcp 2222
注意:如果执行该命令时出现以下提示,请换个端口再试:
ValueError: Port tcp/4444 already defined
三:拒绝root用户远程登陆
#请保持服务器上至少有一个可以远程登陆的普通远程账号
#修改配置文件如下:
#打开该选项并修改参数为no
PermitRootLogin no
#重启服务后生效,使用时使用普通用户进行登陆,需要使用root用户时再切换
四:允许特定用户ssh登陆,其他用户都无法登陆
#编辑配置文件,在最后添加如下内容:
AllowUsers USERNAME
USERNAME为你允许登陆的账号,如果是多个用户,中间用空格隔开
#重启ssh服务后生效
五:使用证书进行登陆
#使用以下命令创建证书:
[root@web ~]# ssh-keygen -t rsa -b 4096
[root@web .ssh]# cp id_rsa.pub authorized_keys
#然后将私钥下载到本地系统,等下用
#如果sftp登陆的时候无法成功,请恢复之前修改的ssh服务配置
#在windows系统上使用xshell创建新会话,使用公钥进行免密登陆
#取消使用密码进行远程登陆
PasswordAuthentication no
#修改配置文件保存退出,重启服务
创作者:Eric· Charles
最后
以上就是朴素小鸽子为你收集整理的Linux ❀ SSH-远程连接工具的全部内容,希望文章能够帮你解决Linux ❀ SSH-远程连接工具所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复