最近在设置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\<Username>\.ssh\config
文件,添加以下内容:
Host servername
User username
Hostname 1xx.1x.1x.1x
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即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)