debian重启ssh服务_Win10自带的ssh客户端key权限设置

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

安装

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

PS C:Userswangyueheng> 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:Userswangyueheng> where.exe ssh
C:WindowsSystem32OpenSSHssh.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文件夹里。

1bd4333ec1f3045b2ed40be155be79e0.png

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

PS C:Userswangyueheng> ssh -p 30000 wangyueheng@1.2.3.4
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'C:Userswangyueheng/.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:Userswangyueheng/.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,在我自己的电脑上看,属性是这样的:

564b415b7e6250e9eeff3e8b2016728c.png

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

4c5b4f1295bb347cbf034d29c2efc6ae.png

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

其他

一个非常有用的东西,在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:Userswangyueheng/.ssh/id_rsa:
Identity added: C:Userswangyueheng/.ssh/id_rsa (C:Userswangyueheng/.ssh/id_rsa)

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

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

648bd9109a75edf922a9d9515e97d7bc.png

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

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

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

(别漏了后面那个点)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值