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

目录

  • 使用场景
  • windows安装ssh客户端
  • 使用powershell ssh登录服务器
  • 生成密钥文件
  • ubuntu ssh服务器配置
  • 使用vscode远程登录
  • 使用Xshell远程登录
  • 使用MobaXtem远程登录
  • Server refused our 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服务器.
解决ssh使用public key远程登录服务器拒绝问题_第1张图片

使用Xshell远程登录

如下图点击Browse…导入私钥,Passphrase根据以前生成时的设置情况,这里为空.
解决ssh使用public key远程登录服务器拒绝问题_第2张图片

使用MobaXtem远程登录

如下图指定私钥文件

解决ssh使用public key远程登录服务器拒绝问题_第3张图片

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.

你可能感兴趣的:(编程工具,ssh,服务器,运维)