Windows设置SSH出错,Permission denied (publickey),Error connecting to agent

最近在设置nginx配置,由于云服务器是密钥登陆的,所以有一些问题。

前置环境:

安装Chocolatey

以管理员权限打开PowerShell运行Set-ExecutionPolicy AllSigned
输入 y 然后回车

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('[https://chocolatey.org/install.ps1](https://chocolatey.org/install.ps1)'))
安装OpenSSH

choco install openssh

接下来可以用直接设置密钥,可以参考在windows端生成。
使用 ssh-keygen 工具在当前目录下生成配对的公钥私钥: ssh-keygen -t rsa
然后把公钥pub上传至服务器,修改服务器配置即可。这个有很多博客讲过。
例如:https://www.cnblogs.com/chywx/p/11147172.html

Powershell配置流程:

已经在别的地方生成好文件,公钥已经部署在服务器中后,直接配置私钥文件。
打开C:\Users\\.ssh\config文件,添加以下内容:

Host servername #别名
    User username #远程服务器用户名,如root,ubuntu等
    Hostname 1xx.1x.1x.1x #服务器ip
    IdentityFile C:\Users\Username\.ssh\xxx.pem # 私钥位置

然后用管理员模式打开Powershell,ssh servername即可。

因为这个密钥是云服务器生成给我,并非我在本地生成的,因此出现了问题。
出现报错:Permission denied (publickey).

提示我要把密钥添加到系统中,运行ssh-add C:\Users\Username\.ssh\xxx.pem
出错:Could not open a connection to your authentication agent

在csdn中搜到的博客让我用ssh-agent bash解决,这是不对的。

尝试运行’ssh-add -L’后出现的错误:
Error connecting to agent: No such file or directory
说明ssh-add根本没有启动。

get-service ssh*查看一下, 果然没有启动,于是用Set-Service启动。

PS C:\Windows\system32> get-service ssh*

Status   Name               DisplayName
------   ----               -----------
Stopped  ssh-agent          OpenSSH Authentication Agent
Running  sshd               OpenSSH SSH Server


PS C:\Windows\system32> Set-Service -Name ssh-agent -StartupType Manual
PS C:\Windows\system32>  Start-Service ssh-agent
PS C:\Windows\system32> get-service ssh*

Status   Name               DisplayName
------   ----               -----------
Running  ssh-agent          OpenSSH Authentication Agent
Running  sshd               OpenSSH SSH Server

这下再运行ssh-add

PS C:\Windows\system32> ssh-add -L
The agent has no identities.
PS C:\Windows\system32> ssh-add <路径>
Identity added: <路径>(.\.pem)

成功,可以用ssh servername 直接登录。

其他

MobaXterm也可以通过配置登陆,打开session setting,在Advanced SHH settings选项卡中,填写
Use private key即可。
Windows设置SSH出错,Permission denied (publickey),Error connecting to agent_第1张图片

你可能感兴趣的:(linux,其他,linux,服务器,ssh)