目录
- 使用场景
- 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服务器.
使用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
.