在使用OpenSSH连接远程电脑时总是需要输入密码,很麻烦,所以需要配置成免密码登陆
1 OpenSSH下载
https://github.com/PowerShell/Win32-OpenSSH/releases
下载系统对应版本OpenSSH-Win32.zip 或 OpenSSH-Win64.zip
以下均以Win7 32BIT下安装 OpenSSH-Win32.zip 为例,
以下各个命令执行均在 OpenSSH-Win32.zip 解压的文件夹位置执行
2 安装
我们设定A(192.168.0.5)机为服务器,B机(192.168.0.6)为客户端,B机通过OpenSSH连接A机
A A机安装SSH服务
解压 OpenSSH-Win32.zip ,打开CMD,并CD 到解压的文件夹下
命令行执行
powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
(卸载则执行
powershell.exe -ExecutionPolicy Bypass –File uninstall-sshd.ps1)
安装后在 控制面板-管理工具-服务即可看到 OpenSSH Authentication Agent 和OpSSH SSH Server两个服务,开启服务,或者后面是用命令行启动服务
B A机SSH配置
将解压目录下的 sshd_config_default 拷贝到 C:\ProgramData\ssh下,并更名为sshd_config,
更改如下几个参数(记得把前面的“#”号去掉)
StrictModes no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/ id_rsa.pub
PermitEmptyPasswords no
C 客户端(B机) 生成密钥对
执行
ssh-keygen -t rsa
一路回车
即可在当前用户名下如
C:\Users\
当前用户名
\.ssh
下生成两文件
id_rsa
id_rsa.pub ,
这个是公钥
,
将这个文件拷贝到
A
机对应位置;
这里要注意,如
sshd_config
里的配置是
AuthorizedKeysFile .ssh/
id_rsa.pub
那么这个公钥文件要放到的对应用户名的
.ssh
下
如客户端
B
机使用帐号
aaaa
登陆
A
机
:ssh aaaa@
192.168.0.5
那么这个公钥文件就要放在
A
机的
C:\Users\aaaa \.ssh
下,否则找不到
当然如果
AuthorizedKeysFile
指定绝对路径就放在对应路径即可
D 连接
A机启动SSH服务,命令行执行 net start sshd
也可以直接去 管理工具-服务 里启动服务
关闭服务使用 net stop sshd
B机连接 ssh aaaa@192.168.0.5 ,
即可直接连接,无需输入密码