在使用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 ,
即可直接连接,无需输入密码
OpenSSH免密码登录配置
155

被折叠的 条评论
为什么被折叠?



