SSH远程连接 - 基于密钥验证 | 学习笔记

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 快速学习SSH远程连接 - 基于密钥验证。

开发者学堂课程【Linux服务器运维基本操作SSH远程连接 - 基于密钥验证学习笔记,与课程紧密联系,让用户快速学习知识.

课程地址:https://developer.aliyun.com/learning/course/581/detail/8003


SSH远程连接 - 基于密钥验证


内容介绍

一、基于密钥的登录方式

二、基于密钥登陆的操作


一、基于密钥的登录方式

比如有两台机器,需要大量的从一台机器远程登录另一台机器上,如果不使用 ssh 免密登,那么在每一次登录时就要输入帐号名密码,这个时候就通过 shh 来验证,如果后续再去进行登录的话,就可以免密登录,把要登录的机器叫做服务端,当前操作机器叫做客户端。看看在这种基于密钥的情况下是什么流程。

流程说明:

首先基于必要的方式下要在客户端手动的生成一对密钥公钥私钥,比如客户端要远程登录到服务器,要通过某种生成公钥和私钥,然后将公钥拷贝给服务端S按照约束重命名为authonzed_keys,所以服务端有了客户端可解密的公钥authonzed_keys,此时服务端有了一个公钥,这个公钥是客户端生成的,当然服务端加密的信息客户端的私钥可以解密,接下来客户端C向S发选一个连请求,信息包括ip、用户名,服务端S得到客户端C的信息后,会到authorized_ keys中查找,因为之前给过公钥有记录,如果有响应的ip和用户名S会随机生成一个字符串,

例如: qwer,服务端S将便用公钥对于符率qwer进行加密,发送给客户端C得到服务端S发来的消息后,客户端C会使用私钥进行解密,然后将解密后的字符串发送给服务端S,服务端接收到解密后的字符串会跟先前生成的字符串进行对比,如果一致,就达成认证,允许免密码登录。如果不一致就要输入密码验证登录。


二、基于密钥登陆的操作

首先连接两台机器,服务端192.168.158.122,客服端192.168.158.121

通过客户端进去服务端,如果没有进行免密登录的话,要通过ssh连接到root用户192.168.158.122,此时要进行一个验证,并且输入密码,如,

#ssh root@192.168.158.122

The authenticity of host 192.168.158.122 (192. 168.158.122)' can't be established.

RSA key fingerprint is 26:d8:5a:70:91:c6:fb:c0:e9:f4 :db:e4:9e:3C:8c:1b.

Are you sure you want to continue connecting (yes/no)? yes

warning: Permanently. added '192. 168.158.122' (RSA) to the list of known hosts .

root@192.168.158.122's password:

Last 1ogin: wed Jan. 3 01:16:42 2018 from 192.168.158.1

此时输入密码成功登录,随后 exit 再登时又需要输入密码,如,[root@node-2 ~]# exit

logout

Connection to 192.168.158.122 closed.

[root@node-1 ~]#

因为没有进行安全的验证所以每次登录都要进行输入密码,如何后续配置认证成功后就不用再输入密码呢,这里就需要使用 SSH 协议,而 OpenSSH 是 SSH 协议的免费开源实现。

OpenSSH 由客户端和服务端的软件组成。服务端是一个守护进程(daemon),默认情况下,CentOS系统会自带OpenSSH服务。

此时可以通过#ps -ef | grep sshd查看是否有 sshd

(1)使用示例:

配置 node-1(192.168.158.121)至node-2(192.168.158.122)机器的免密登录。

  • 在node-1 机器上生成密钥

ssh-keygen -t rsa [dsa] 按四下回车

生成密钥文件和私钥文件id. rsa, id_ rsa. pub,例下:

[root@node-1 ~]# ssh-keygen -t rsa

Gener ating 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 1 dentification has been saved in /root/.ssh/id_ rsa.

Your. pub1ic key has been saved in /root/. ssh/id_ rsa. pub.

The_ key. fingerprint_ is:

7e:38:29:3a:21 :6d:30:56:e2:c4:f9:6f:c6:4C:97 :d2 rootCnode-1

The key's_ randomart image is:

cd到.ssh路径下可查看到在当前路径下有一个私钥id_rsa, 公钥id_rsa.pub

  • 将公钥拷贝给服务端node-2机器

同样使用命令ssh-copy-id node-2,可以进行相应的拷贝操作和命名,这里拷贝id给192.168.158.122,重命名为ssh下的authorized_ keys,例下:

[root@node-1.ssh]# ssh-copy-id 192.168.158.122

root@192.168.158.122's password :

Now try 1ogging into the machinewith "ssh '192. 168.158.1221",and check in:

. ssh/authorized_ keys

to make Sure we haven't added extra keys that you weren't expecting.

拷贝后可以cd到.ssh查看,此时多了一个authorized_ keys,这个名字是工具自动生成的,如,

[root@node-2 . ssh]# ll

tota14

- rw------ - .1 root root 393 Jan 3 01:20 authorized_ keys

在node-1#ssh root@192.168.158.122则直接登录上了,因为在远程发送过程当中,他已经做了一个回传信息的解密,进行认证成功了。首次链接需要输入用户密码、验证成功后后续免密登陆。

(2)密钥非对称性

反过来做node-2到node-1的加密,

[root@node-2.ssh]#ssh root@192.168.158.122回车会发现没有进行任何的验证,仍然需要输入密码,所有从侧面反映出公钥与私钥的非对称加密,公钥负责加密,私钥负责解密,反之不可。

相关文章
|
3月前
|
Ubuntu 网络安全 数据安全/隐私保护
如何在 Ubuntu 上创建一个 SSH CA 以验证主机和客户端
如何在 Ubuntu 上创建一个 SSH CA 以验证主机和客户端
79 0
|
1月前
|
Linux 网络安全 数据安全/隐私保护
Jetson 学习笔记(十三):SSH远程登录控制(终端控制和图形界面)-成功通过
这篇文章介绍了如何通过SSH命令行和VNC图形界面远程登录和控制NVIDIA Jetson Nano设备。
210 0
Jetson 学习笔记(十三):SSH远程登录控制(终端控制和图形界面)-成功通过
|
2月前
|
运维 安全 网络安全
常用的运维工具:SSH和远程连接工具详解
常用的运维工具:SSH和远程连接工具详解
110 3
|
3月前
|
存储 安全 算法
如何使用 PuTTY 创建 SSH 密钥以连接到 VPS
如何使用 PuTTY 创建 SSH 密钥以连接到 VPS
60 2
|
3月前
|
安全 Linux 网络安全
在Linux中,如何配置SSH以确保远程连接的安全?
在Linux中,如何配置SSH以确保远程连接的安全?
|
3月前
|
安全 Linux Shell
如何在 Linux 服务器上配置基于 SSH 密钥的身份验证
如何在 Linux 服务器上配置基于 SSH 密钥的身份验证
181 0
|
3月前
|
安全 Unix Shell
如何在 FreeBSD 服务器上配置基于 SSH 密钥的身份验证
如何在 FreeBSD 服务器上配置基于 SSH 密钥的身份验证
106 0
|
4月前
|
网络安全 开发工具 git
|
4月前
|
安全 Linux 网络安全
ssh中的密码登录和密钥登录
ssh中的密码登录和密钥登录
|
5月前
|
网络协议 网络安全 数据安全/隐私保护
如何在IDEA中使用固定公网地址SSH远程连接服务器开发环境(三)
在IDEA中通过固定公网地址SSH远程连接服务器开发环境,需要配置固定TCP端口以避免地址随机变化。首先,升级cpolar至专业版及以上,然后在官网保留一个固定TCP地址。进入cpolar管理界面,编辑隧道信息,将保留的固定地址填入,更新隧道。最后,在IDEA中新建SSH连接,输入固定地址和端口,验证连接。成功后,即可稳定远程开发。