一、SSH验证方式原理

用户名密码验证方式

说明:

(1) 当客户端发起ssh请求,服务器会把自己的公钥发送给用户;

(2) 用户会根据服务器发来的公钥对密码进行加密;

(3) 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功

基于密钥的登录方式

说明:

(1) 首先在客户端生成一对密钥(ssh-keygen);

(2) 并将客户端的公钥ssh-copy-id 拷贝到服务端;

(3) 当客户端再次发送一个连接请求,包括ip、用户名;

(4) 服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:qwer;

(5) 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端;

(6) 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端;

(7) 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录。

二、Windows to Windows SSH登录

总结: 第一步:服务器端PowerShell server安装与配置 第二步:客户端Putty安装与配置 第三步:验证用户名/密码登录(不够安全) 第四步:验证证书登录(安全,简单)

服务器端PowerShell server安装与配置

访问https://www.nsoftware.com/powershell/server/download.aspx下载试用版安装,安装时勾选加到防火墙开放端口。 下载注意点击事项 配置如下:可以选择已有证书,也可以自己生成证书 端口22是默认的,如果被占用,也可以修改成其他的。 Other事项一定要注意Text Encoding是简体中文(GB2312),因为Jenkins安装的是简体中文版,两边字符不一致,Jenkins控制台输出会有乱码 服务器端开启用户名/密码登录模式 启动服务【用户名/密码登录(又叫基于口令的安全验证)】

客户端Putty安装与配置

访问 https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html,下载putty.zip, 并且解压缩。此处关于putty的安装操作不再赘述。

1.打开客户端putty输入远程IP,端口号(如果服务器端修改了端口号,要和其保持一致),点击open 2.输入远程机器用户名,密码(屏幕不显示输入),得到路径显示,表示连接成功 此处显示服务器端的路径,表示已成功以SSH登录。

基于证书登录

点击puttygen.exe, 点击Generate, 鼠标来回换动,有助于快速生成密钥。密钥生成后,可以为密钥设置密码,点击save private key, 保存客户端私钥。不要点击save public key, 手动复制public key的内容到.txt文件保存(其他任何文件类型皆可),并上传到服务器端。

第一步:客户端配置

第二步:服务器端配置如下,修改配置后要重启服务

第三步:打开putty,IP和端口设好,connection设置如下

第四步:点击open, 得到如下提示,代表连接成功

比较两种连接方式:

用户名/密码方式登录,一旦远程机器用户名/密码泄漏,任何人都可以登录,不够安全。而且每次登录需要输入用户名/密码,比较繁琐。证书登录, 通过密钥对加解密传输数据,相比前者更安全。也不会受到“中间人” 攻击。每次登录无需输入用户名/密码,只需输入密钥密码(如果设置了的话)

三、用jenkins在windows服务器间以SSH协议进行登录访问

在window系统上安装了jenkins ,想通过jenkins自动部署windows上程序。使用ssh登录。以下是环境搭建步骤。

1、 jenkins中安装 publish over ssh 插件

进入jenkins 的 系统管理->插件管理,安装publish over ssh

2、Windows to Windows SSH登录

请先通过上述“二、Windows to Windows SSH登录”可以正常登录后,说明已经可以通过ssh登录了,然后在配置jenkins的ssh服务。

进入jenkins的系统管理->系统设置->ssh设置 紧接着测试是否配置成功

3、新建工程进行任务配置

假定按如下设置: 观测运行结果: 到此已全部完成!

好文阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。