windows通过秘钥使用ssh和scp

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

原文地址:https://www.cnblogs.com/fancybit/p/11508617.html

时间: 2024-11-08 10:56:00

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

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

一 创建秘钥 1 Macbook $ ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key ($HOME/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in $HOME/.

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

在做ssh的时候出现下面的错误,这个错误根本没有遇到过啊,仔细一看,后面的端口不对,我要发到的服务器端口是22,我想肯定是这个原因,结果不加端口,还是提示 这个错误,于是咨询下其他人,结果发现要分发的秘钥/root/.ssh/id_dsa.pub,根本不存在,才会提示这个错误,于是使用ssh-keygen -t dsa  生成公钥后即可. [[email protected] ~]# ssh-copy-id -i /root/.ssh/id_dsa.pub "[email protected]

免秘钥登录命令

#ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 生成秘钥 #cd ~/.ssh/ id_dsa id_dsa.pub known_hosts id_dsa 私钥(给自己用) id_dsa.pub(给别人用) 把公钥文件追加到本地的认证文件中去 #cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 就可以免密码登录 #scp ./id_dsa.pub [email protected]:/opt 把node1里的公钥

linux普通用户免秘钥登陆操作

普通用户(xusj)进行免秘钥登陆步骤如下: 在主机A 192.168.1.1上操作 ssh-keygen -t rsa              //参数公钥和私钥对,输入后一路回车. Generating public/private rsa key pair. Enter file in which to save the key (/home/xusj/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same

ssh、scp免秘钥远程执行命令:expect

首先安装expect # yum -y install expect 命令格式 # ./expect IP COMM    #expect是独立的工具,所以不能用sh来执行 #!/usr/bin/expect set timeout -1    #超时时间默认10秒,如果你要执行一条很漫长的命令,那么这个很有必要,这里将超时时间设置为永不超时 set COMMADN1 [lindex $argv 0]    #传参变量,这里引用脚本后面的第一个参数 set COMMADN2 [lindex $a

ssh免秘钥登陆实现

1.用处 搭建集群或者工作中登陆跳板机经常需要做免秘钥互相登陆彼此服务器. 2. 准备工作   假设A主机10.20.0.1想通过ssh登录到B主机10.20.0.2上.   那么客户端(A主机)需要安装ssh客户端软件,服务器端(B主机开机sshd进程)需要安装ssh服务器软件.   ssh客户端Linux发行版一般都自带的,对于ssh服务器端,Ubuntu用户可以sudo apt-get install openssh-server来安装,其他Linux用户也安装openssh-server

s15day14 ssh秘钥远程连接

1 使用密钥登录    1.1 创建密钥对    1.2 上传公钥文件    1.3 导入公钥信息    1.4 使用密钥对登录2 远程执行命令    2.1 简单命令    2.2 使用脚本执行多命令 以192.168.1.104作为客户机以192.168.1.103作为服务器 1 使用密钥登录 1.1 创建密钥对 在SSH客户机创建用户秘钥对 ssh-keygen -t rsa 之后全回车即可将会在~/.ssh目录中生成两个文件:id_rsa(私钥) 与 id_rsa.pub(公钥) 1.2

中小企业最基本的实用的ssh-key秘钥方案之ssh免密码登陆实战  

一.实验环境 本次实验需至少两台机器,本文采用三台机器做讲解.        服务器       ip     是否为分发机     nfs-server 10.0.0.11          是   web-client01 10.0.0.12          否   web-client02 10.0.0.13          否 二.实施步骤 1.添加系统账号(即普通用户)分别使用了三台机器,一台为分发机,另两台为被分发机.在企业环境中,很多用户直接用root来操作,这样好很不规范,权

centos ssh免密码秘钥登录

假设从A主机ssh登录B主机,用秘钥代替密码,步骤如下: 1.在A主机上执行:ssh-keygen -t  rsa 一切默认,不用输入密码,生成两个文件: /root/.ssh/id_rsa /root/.ssh/id_rsa.pub 2.生成authorized_keys文件: touch /root/.ssh/authorized_keys cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys chmod 700 /root/.ss