解决ssh使用public key远程登录服务器拒绝问题

使用场景

使用vscode远程ssh登录使用public key不需要输入密码,比较方便.

windows安装ssh客户端

打开powershell命令行窗口

#查看ssh是否安装
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
#
Name  : OpenSSH.Client~~~~0.0.1.0
State : Installed

Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

#安装ssh客户端
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
#安装ssh服务端
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

# Uninstall the OpenSSH Client
Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

# Uninstall the OpenSSH Server
Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

使用powershell ssh登录服务器

ssh username@serverIP

生成密钥文件

在linux服务器上或者本地windows上生成,现在在linux服务器上生成

ssh-keygen -t ecdsa
#一路回车,passphrase密码设置为空(方便vscode在使用过程中不需要输入passphrase密码)

cd ~/.ssh
#公钥保存到文件authorized_keys,如果有多个公钥添加到文件中,使用 >>
cat id_ecdsa.pub >authorized_keys

#把私钥文件id_ecdsa复制到windows用户的.ssh目录中,例如:C:\Users\Administrator\.ssh

ubuntu ssh服务器配置

sudo vim /etc/ssh/sshd_config

RSAAuthentication yes
PubkeyAuthentication yes
PermitRootLogin yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
StrictModes no

重启ssh服务

sudo service ssh restart

使用vscode远程登录

vscode安装remote-SSH插件.

编辑C:\Users\Administrator\.ssh\config配置文件

Host ubuntu18
	#远程linux服务器IP地址
    HostName 192.168.1.111
    #登录用户名
    User lei
    #私钥文件
    IdentityFile C:\Users\Administrator\.ssh\id_ecdsa

如下图,Remote Explorer->Connect in Current Windows…,使用公钥登录linux服务器.
在这里插入图片描述

使用Xshell远程登录

如下图点击Browse…导入私钥,Passphrase根据以前生成时的设置情况,这里为空.
在这里插入图片描述

使用MobaXtem远程登录

如下图指定私钥文件

在这里插入图片描述

Server refused our key问题解决方案

#可以查看登录失败信息
sudo cat /var/log/auth.log | grep sshd

使用MobaXtem可以在客户端看到Server refused our key提示.

在网上寻找了许多方案都不能解决问题,我的ubuntu系统安装有点问题.

最终发现ssh-keygen -t ecdsa生成的秘钥可以,同时sshd配置文件需要设置StrictModes no.

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值