本次使用openssh 作为ssh 客户机服务器之间的沟通工具
ssh 作为加密协议的沟通工具,本次采用密钥对的方式进行通讯,生成密钥对,将公钥放在server处,私钥放在client端。
- 安装openssh, 去git 上下载
- 安装到windows server
解压 Openssh-Win64.zip, 拷贝Openssh-Win64到磁盘任意路径,运行install-sshd.ps1 脚本,可以在此目录按住shift ,同时鼠标右键 选择 open windows powershell here…, 即在此目录下打开windows powershell ,输入.\install-sshd.ps1
回车,就安装了。
3. 安装后,打开C:\ProgramData\ssh
目录找到sshd_config 文件修改:
PasswordAuthentication yes
PubkeyAuthentication yes
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
- 在此文件看到
AuthorizedKeysFile .ssh/authorized_keys
, 也就是说此处是存放openssh key 的地方,存储的是public key, 但public key 怎么产生呢?在server端还是在client 端? 网上流言都是在客户端产生,但实际其实在哪里产生都可以。本次我这里就是在服务端产生的。
打开window cmd 命令行窗口输入ssh-kengen -t rsa
,然后一路回车,都采用默认值。就生成一对密钥对(此处密钥方式为 rsa,还有另外一种dsa 本人没有使用过,有兴趣的同学可以深入研究。)
- 然后就在%userprofile%/.ssh目录下看到刚刚产生的密钥对,
id_rsa.pub为公钥,用记事本打开,可以看到用户名@机器名是啥:
全部复制,拷贝到authorized_keys这个二进制文件中,保存:
不知道怎么创建二进制文件的同学,可以先创建一个脚本文件1.txt, 然后rename 就可以了 打开cmd终端 运行ren 1.txt authorized_keys
即可。
此时ssh 服务端已经部署好了。
- 打开services 将openssh 相关的service 重启,使上述所有setting生效:
此时服务端所有配置就已经设置好了
8.将私钥拷贝到jenkins credential中,用于做程序的部署, 即jenkins作为客户端