win10安装sshpass_Win10自带的ssh客户端key权限设置

远程办公有一段时间了,ssh远程登录服务器是必不可少的。一般人可能会去找XShell,然后有人喜欢Putty,MobaXTerm之类。其实Win10已经自带了ssh客户端和服务端了,简单使用的话不用麻烦去下别的。这里看下ssh客户端的使用,关键是对应的key权限问题。

安装

打开PowerShell,输入ssh三个字母,按Enter。

PS C:\Users\wangyueheng> ssh

usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]

[-b bind_address] [-c cipher_spec] [-D [bind_address:]port]

[-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]

[-i identity_file] [-J [user@]host[:port]] [-L address]

[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]

[-Q query_option] [-R address] [-S ctl_path] [-W host:port]

[-w local_tun[:remote_tun]] destination [command]

打印出usage,这样就完事了。

如果报错找不到命令,那么就:设置-应用和功能-可选功能-添加功能,添加ssh客户端即可。

功能

不妨看一下Win10把这个ssh客户端放哪里了。

PS C:\Users\wangyueheng> where.exe ssh

C:\Windows\System32\OpenSSH\ssh.exe

打开这个文件夹,看看都有些什么。

scp.exe

sftp.exe

ssh-add.exe

ssh-agent.exe

ssh-keygen.exe

ssh-keyscan.exe

ssh.exe

看来除了ssh.exe还有别的非常有用的东西。例如生成key的keygen和拷贝文件的scp都有了。

ssh key

这里假设已经有了用于连接公司服务器的自己的私钥,例如一个名为id_rsa的文件。可以用-i指定路径,更好的是放在自己用户名下的.ssh文件夹里。

然后尝试登陆,可能会报错,其他方式登录也极有可能会报的,私钥文件权限太公开。就是如果别人也能轻松看到你的私钥(没有限制id_rsa文件的权限),那么ssh就忽略你这个私钥。

PS C:\Users\wangyueheng> ssh -p 30000 wangyueheng@1.2.3.4

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@ WARNING: UNPROTECTED PRIVATE KEY FILE! @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Permissions for 'C:\\Users\\wangyueheng/.ssh/id_rsa' are too open.

It is required that your private key files are NOT accessible by others.

This private key will be ignored.

Load key "C:\\Users\\wangyueheng/.ssh/id_rsa": bad permissions

wangyueheng@10.246.254.81: Permission denied (publickey).

如果是Linux环境,一搜就会发现,对这种ssh "permissions are too open" error,需要执行一个

sudo chmod 600 ~/.ssh/id_rsa

让别人不可读写这个文件。

那么问题来了,Windows没有chmod命令。需要用别的方式改权限。

修改key权限

对id_rsa文件:右击-属性-安全-高级。这是我从公司电脑上复制下来的key,在我自己的电脑上看,属性是这样的:

首先,点击窗口左下角的“禁用继承”,然后删除“权限条目”里自己以外的人。搞完后像这样:

这时,这个私钥文件才为自己独有。这时就可以用这个登陆服务器了。

其他

一个非常有用的东西,在PowerShell里按Ctrl+R,输入ssh字样,然后不断按Ctrl+R,可以往上翻以前输过的带'ssh'字样的命令,和Linux Shell几乎一样,非常方便。

我经常本地写好代码后rsync到服务器,并且使用的是带密码(passphrase)的私钥,那么每次输入密码就很烦。如果是Linux Shell,使用ssh-agent就只用输一次了。

wangyueheng@PC-XZ:~$ eval $(ssh-agent)

Agent pid 16

wangyueheng@PC-XZ:~$ ssh-add

Enter passphrase for /home/wangyueheng/.ssh/id_rsa:

Identity added: /home/wangyueheng/.ssh/id_rsa (/home/wangyueheng/.ssh/id_rsa)

上面是在Win10 Store里安装的Debian WSL里输入的。

突然发现,Win10自带的ssh-agent.exe其实也是可以用的!使用上和Linux有点区别。

正常操作,直接执行以下ssh-agent.exe,会报错

PS E:\Software> ssh-agent

unable to start ssh-agent service, error :1058

搜了一下发现,是有个对应的服务被禁用了

PS E:\Software> Get-Service ssh-agent | Select *

Name : ssh-agent

RequiredServices : {}

CanPauseAndContinue : False

CanShutdown : False

CanStop : False

DisplayName : OpenSSH Authentication Agent

DependentServices : {}

MachineName : .

ServiceName : ssh-agent

ServicesDependedOn : {}

ServiceHandle :

Status : Stopped

ServiceType : Win32OwnProcess

StartType : Disabled

Site :

Container :

注意StartType是Disabled,就是说无法开启服务。再就是DisplayName是“OpenSSH Authentication Agent”。按win键输入service,打开“服务”,根据DisplayName找到这个服务,修改启动方式为“手动”。然后再执行ssh-agent.exe就不会报错了!

然后执行ssh-add.exe,应该可以正常使用了,不需要每次输入passphrase了。

PS E:\Software> ssh-agent

PS E:\Software> ssh-add

Enter passphrase for C:\Users\wangyueheng/.ssh/id_rsa:

Identity added: C:\Users\wangyueheng/.ssh/id_rsa (C:\Users\wangyueheng/.ssh/id_rsa)

为了使用rsync,不得不弃用了Win10自带的ssh。装好Debian,源改成中科大的http://mirrors.ustc.edu.cn,安装openssh和rsync。

另一个非常有用的东西,按住Shift,在文件夹空白处右击,菜单里有

可以直接打开PowerShell和Linux shell,工作目录就是当前目录。

而在Linux shell里(或PowerShell里,PowerShell还可以start .),直接

wangyueheng@PC-XZ:~$ explorer.exe .

(别漏了后面那个点)

就可以直接打开文件管理器!如果是Linux分区,那么看上去像挂了一个网络盘在Windows里;如果是Windows分区,那么直接就是正常的文件夹。这比虚拟机还要好用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值