一.SSH协议简介:
SSH 为 Secure Shell 的缩写,是一种网络安全协议,专为远程登录会话和其
他网络服务提供安全性的协议。通过使用 SSH,可以把传输的数据进行加密,有效防止远程管理过程中的信息泄露问题。
从客户端来看,有两种验证方式:基于密码、基于密钥
1. 用户名密码验证方式
说明:
(1) 当客户端发起 ssh 请求,服务器会把自己的公钥发送给用户;
(2) 用户会根据服务器发来的公钥对密码进行加密;
(3) 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,
则用户登录成功。
2. 基于密钥的登录方式
说明:
(1) 首先在客户端生成一对密钥(公钥、私钥);
(2) 客户端将生成的公钥拷贝到需要访问的服务端机器上;
(3) 当客户端再次发送一个连接请求,包括 ip、用户名;
(4) 服务端得到客户端的请求后,会到 authorized_keys 中查找,如果有相
应的 IP 和用户,就会随机生成一个字符串,例如:qwer;
(5) 服务端将使用客户端拷贝过来的公钥对随机字符串 qwer 进行加密,然后
发送给客户端;
(6) 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后
的字符串发送给服务端;
(7) 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果
一致,就允许免密码登录。
二.OpenSSH 使用
OpenSSH 是 SSH 协议的免费开源实现。
OpenSSH 由客户端和服务端的软件组成。服务端是一个守护进程(daemon),
他在后台运行并响应来自客户端的连接请求。服务端一般是 sshd 进程,提供了
对远程连接的处理。
客户端包含 ssh 程序以及像 scp(远程拷贝)、slogin(远程登陆)、sftp(安
全文件传输)等其他的应用程序。
默认情况下,CentOS 系统会自带安装 OpenSSH 服务。
OpenSSH 由客户端和服务端的软件组成。服务端是一个守护进程(daemon),
他在后台运行并响应来自客户端的连接请求。服务端一般是 sshd 进程,提供了
对远程连接的处理。
客户端包含 ssh 程序以及像 scp(远程拷贝)、slogin(远程登陆)、sftp(安
全文件传输)等其他的应用程序。
默认情况下,CentOS 系统会自带安装 OpenSSH 服务。
使用示例: 配置 node-1 至 node-2 机器的免密登录。
a) 在 node-1 机器上
ssh-keygen -t rsa [dsa] 按四下回车
生成密钥文件和私钥文件 id_rsa,id_rsa.pub
b) 将公钥拷贝给 node-2 机器
ssh-copy-id node-2
首次链接需要输入用户密码、验证成功后后续免密登陆。
a) 在 node-1 机器上
ssh-keygen -t rsa [dsa] 按四下回车
生成密钥文件和私钥文件 id_rsa,id_rsa.pub
b) 将公钥拷贝给 node-2 机器
ssh-copy-id node-2
首次链接需要输入用户密码、验证成功后后续免密登陆。