windows10内置支持了ssh和scp等仿linux指令,可以让我们方便的使用类似linux的工作流把日常的代码资源部署维护工作写成脚本(批处理)。

ssh和scp都有-i参数可以通过指定一个私钥文件位置来远程登录linux或者windows操作系统,但是每次使用指令时都用-i参数指定私钥地址会比较麻烦。我们还可以通过ssh-add方法来添加私钥文件到缓存,这样以后非对称加密秘钥对不变的话就可以直接远程操作不需要输入密码或者私钥文件了。

这个操作需要先启用ssh-agent服务,这个服务在我的windows10里默认是禁用的,所以需要先在powershell里设置成auto并且启动它:

PS C:\windows\system32> set-service -name ssh-agent -startuptype auto
PS C:\windows\system32> get-service ssh-agent
Status Name DisplayName
------ ---- -----------
Stopped ssh-agent OpenSSH Authentication Agent PS C:\windows\system32> start-service ssh-agent
PS C:\windows\system32>

我的windows用户名是fancy 假设把私钥文件放在了c:\windows\user\fancy\key

就这样添加私钥:

ssh-add c:\windows\user\fancy\key

也可以把秘钥文件改名成

identity

或者

id_rsa

放在~/.ssh/(也就是c:\users\fancy\.ssh\)

然后直接ssh-add 这样就会自动把这些私钥文件加入到缓存,以后就不用每次使用-i参数了。

scp也是使用同样的-i参数,并且和上述操作共用秘钥缓存

然后我们就可以用scp把脚本文件复制到远程服务器,然后使用ssh在远程服务器上执行起来,实现脚本化操作远程服务器了。

OK 更多参看linux服务器操作方面的书籍,还有:

powershell ssh-agent 无法工作:https://www.cnblogs.com/crb912/p/9987590.html

windows通过秘钥使用ssh和scp的更多相关文章

  1. 使用秘钥连接ssh

    ssh服务器搭建 通过秘钥登陆连接另外一台虚拟机 创建证书  ssh-keygen -t rsa 第一行密钥保存位置直接输入回车 确定默认创建位置为 /root/.ssh 公钥必须改名为  autho ...

  2. GitHub秘钥(SSH Key)

    一.公钥的作用 公钥一般给服务器,别人权限中加入我给的公钥,当我们从远地仓库中下载项目(git clone xxx)的时 那个服务器通过他的绑定的公钥来匹配我的私钥,如果匹配,则就可以正常下载,如果不 ...

  3. 加秘钥的SSH

    import paramiko private_key = paramiko.RSAKey.from_private_key_file('id_rsa31.txt') # 创建SSH对象 ssh = ...

  4. windows 上 OpenSSH 服务 启用秘钥登录(微软真心逆天)

    windows 上 OpenSSH 服务 启用秘钥登录(微软真心逆天) windows 安装 OpenSSH 服务 最近需要在windows 服务器上部署自动发布程序,那么就需要用到 scp 和 ss ...

  5. 【原创】大叔经验分享(85)ssh秘钥之创建和使用

    一 创建秘钥 1 Macbook $ ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to sa ...

  6. SSH公/私秘钥的生成及使用

    如果使用GitHub比较多的朋友,对SSH Key肯定也不陌生,当我们SSH进行代码的pull&push时,往往需要我们配置SSH Key. 如果Linux用的多朋友,肯定对SSH Key都很 ...

  7. ssh秘钥分发错误“/usr/bin/ssh-copy-id: ERROR: No identities found”

    在做ssh的时候出现下面的错误,这个错误根本没有遇到过啊,仔细一看,后面的端口不对,我要发到的服务器端口是22,我想肯定是这个原因,结果不加端口,还是提示 这个错误,于是咨询下其他人,结果发现要分发的 ...

  8. ssh和scp详解

    一.SSH客户端使用 使用ssh客户端远程登陆到指定的计算机: $ ssh {user}@{remote} -o IdentityFile=/home/id_rsa -o StrictHostKeyC ...

  9. git生成和检查秘钥操作

    查看本地是否有git config的配置: git config --list 设置用户名和邮箱: $git config --global user.email "tanteng@gmai ...

随机推荐

  1. 【Git版本控制】Idea中设置Git忽略对某些文件的版本追踪

    在Idea中有些本地文件无需与远程库同步,仅是本地使用.此时就需要将这些文件加入到Git的版本忽略中来. 设置步骤 1.搜索插件 .ignore,并安装 2.增加.gitignore文件 3.配置相应 ...

  2. SpringBoot的学习一:入门篇

    SpringBoot是什么: SpringBoot是Spring项目中的一个子工程,是一个轻量级框架. SpringBoot框架中有两个个非常重要的策略:开箱即用和约定优于配置 一.构建工程 1.开发 ...

  3. 循环控制语句if 、for、case、while

    if 循环控制(单分支与多分支) (1)单个判断(单分支循环): if [ 条件判断 ]; then 执行动作 fi if [ 条件判断 ]; then 执行动作 else 执行动作 fi 写入tes ...

  4. Visualforce 页面的生命周期

    了解 Visualforce 页面的生命周期可以让我们明白其各个元素的执行顺序.改变逻辑,从而提高开发效率,避免不必要的错误. 在官方文档中有详细的讲解.本文摘取其中的要点,作为一个总结. Visua ...

  5. Python例题集

    例题1:任意输入一组数据比较其最大值并记录输入的数据个数. 源代码: def max(*a): m=a[0] i=0 for x in a: i+=1 if x>m: m=x print('参数 ...

  6. [LeetCode] 897. Increasing Order Search Tree 递增顺序查找树

    Given a tree, rearrange the tree in in-order so that the leftmost node in the tree is now the root o ...

  7. [LeetCode] 789. Escape The Ghosts 逃离鬼魂

    You are playing a simplified Pacman game. You start at the point (0, 0), and your destination is (ta ...

  8. Metasploit 常用命令手册

    Installation curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/template ...

  9. js原型和原型链,以及__proto__、prototype属性

    __proto__和prototype属性: 1.__proto__属性: 在JS里,万物皆对象(函数是对象.原型也是对象...).对象都具有属性__proto__,这个属性会指向该对象的原型. 2. ...

  10. [Powershell]使用Msbuild构建基于.NET Framework的WebAPI项目

    查找最高版本的MsBuildTools. 清理缓存垃圾. 还原NuGet包. 构建解决方案. 按项目发布程序到本地. 按项目ZIP打包. <# .NOTES ================== ...