已经尝试解决这个问题几个小时了。已经在网上搜索并按照教程进行操作,但没有任何效果。
在我的 Windows 本地计算机中,我在 VSCode 中安装了远程 SSH 插件。我正在尝试连接到我的远程 Linux 服务器。
我的配置文件如下所示(为了安全起见,将主机名和用户更改为虚拟值)。
Host RemoteServer
HostName remote.server.infra
User user123
IdentityFile ~/.ssh/privkey
尝试连接到新主机时。一直提示输入密码。 根据检查日志,它说
no such identity: C:\\Users\\user123/.ssh/privkey: No such file or directory
这个私钥文件正是我在连接到远程服务器时在 Putty 中使用的文件。 我错过了什么?
编辑: 终于想通了。我必须使用 puttygen 将我的私钥转换为 openssh 格式。
除了使用openSSH格式之外,我还将完整路径放入配置文件中:
Host RemoteServer
HostName remote.server.infra
User user123
IdentityFile /c:/Users/user123/.ssh/privkey
请注意,SSH URL 将变为:
ssh -Tv RemoteServer
注:Başar Söker添加了评论:
我还需要在路径中添加冒号。
这是它的样子:IdentityFile /c:/Users/username/.ssh/privatekey.pem
如果复制/粘贴私钥,它必须以换行符结尾,否则也会导致同样的错误。
提醒:只有公钥可以复制到其他地方。私钥应保留在您的计算机上。
如果您使用putty生成了公钥私钥对,则需要使用putty生成转换来转换私钥,否则它将不起作用,并且会显示公钥访问被拒绝