这篇文章来为你们介绍远程链接 Linux 服务器,通常使用 Linux 系统的人都习惯借助第三方远程链接,由于直接在 Linux 系统内操做很不方便,它不能进行上拉页面,这就很让人难受。能够远程链接的软件不少,有 Xshell、putty、CRT 等等,可是我比较喜欢和习惯使用 Xshell。shell
说到远程链接,那不得不说的一个协议就是 SSH 了,SSH 是 secure shell 的缩写,是一个安全远程管理的服务。它是一个创建在应用层上的安全远程管理协议,算是目前较为可靠的一个传输协议,专门为远程登录会话和其余网络服务器提供安全性,利用 ssh 协议能够有效防止远程管理过程当中的信息泄露问题。这个协议可用于大多数的 UNIX 操做系统中,它可以实现字符界面的远程登陆管理,它默认使用 22 端口,采用密文的形式在网络中传输资源,相对于经过明文传输的 Telnet 协议,具备更高的安全性。安全
SSH 提供了基于帐户密码(口令)和密钥对两种登录验证方式,这二者都是经过密文传输数据的。服务器
帐户密码验证过程:网络
Linux 主机之间的远程管理工具是 ssh 命令,全部咱们直接使用 ssh 进行远程登陆。dom
格式:ssh 用户名@IP 地址
ssh root@192.168.88.20 ssh
密钥对验证过程:ide
首先须要在 Client 上建立一对密钥,而且要把公钥放在须要访问的 Server 上;当 Client 须要链接 Server 时,Client 端的软件就会向 Server 端发出登陆请求,请求使用密 钥对中的公钥进行安全验证; Server 收到请求以后,会在该用户的家目录下查询公钥文件,拿 Client 发送过来的公钥和本身家目录下的公钥进行比较;若是两个公钥一致,server 就会用公钥加密 “challenge(质疑)”,并把它发送给 Client 软件。Client 收到加密内容以后,使用本地的私钥进行解密,再把解密结果发送给 Server 端,Server 端验证成功后,容许登录。工具
注意:若对比结果失败,则 Server 端会通知 Client 端此公钥未在本机注册,没法验证登陆。测试
Linux 主机之间的远程管理工具是 ssh
命令,因此咱们直接使用 ssh
进行远程登陆。加密
格式:ssh 用户名@IP地址
能够看到咱们在 client 主机上远程登陆 server 端,是很容易的,只要知道服务器的密码,就能够完成登陆操做。
[root@client ~]$ ssh-keygen -t rsa -b 2048
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:fl3B1MUmxWWNTdOfad8oOyjGaaU+mas/ayawa4ptiJ8 root@client
The key's randomart image is:
+---[RSA 2048]----+
| .X@|
| oo.X|
| oo+|
| =.|
| S o.o|
| . . ..... o|
|.. o ..*...o |
|oo..o . #.. o |
|.oEo...X=* . |
+----[SHA256]-----+
ssh-keygen 是生成密钥对的工具,-t
选项是用来指定加密类型的,此处采用 rsa 加密类型,-b
选项是用来指定密钥对加密长度的。
关于上述生成密钥对时的两个询问解释以下:
询问 1:执行过程当中会询问保存位置,通常默认保存在当前用户家目录下的 .ssh/ 目录下;
询问 2:是否对密钥文件进行加密
这里使用 ssh-copy-id
命令进行公钥的上传。
[root@client ~]$ ssh-copy-id root@.71.74.
/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@.71.74.'s password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@.71.74.'"
and check to make sure that only the key(s) you wanted were added.
通过对比客户端和服务端公钥内容相同,能够看到密钥上传成功。密钥上传成功以后,咱们尝试在客户端上登陆服务器:
能够看到,此次登陆咱们并无输入密码,直接就登陆成功。关于上述演示说明:由于使用的公网服务器进行测试,因此部分敏感地方有作打码,可是这并不妨碍读者阅读,其实这个实验仍是蛮有意思的,感兴趣的朋友能够尝试练习。