WinSCP在Debian12/Ubuntu22.04系统下无法使用密钥登陆的解决办法
今天装了个Debian12的系统,配置了ssh登录,但使用WinSCP通过ssh密钥登录时,总提示被拒绝,但是单独使用putty通过密钥登录却正常,让人百思不得其解。
比如我使用winscp通过Sftp登录服务器,提示:couldn't agree a host key algorithm(available:rsa-sha2-512,rsa-sha2-256),刚开始不清楚原因,网上搜罗一番,说Linux系统使用OpenSSh8.0以后的版本中,配置文件“/etc/ssh/sshd_config”中默认不再添加ssh-rsa密钥认证方式。我装的Debian12系统使用的openssh版本为9.2,所以它默认是没有添加ssh-rsa密钥认证的。
具体的解决方法很简单,在/etc/ssh/sshd_config中添加:
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
然后重启ssh服务即可:
systemctl restart sshd
再使用WinSCP通过密钥登录就正常了。
查看OpenSSH版本,大于8.0都要进行上述处理才行。
root@localhost:~# ssh -V
OpenSSH_8.9p1 Ubuntu-3ubuntu0.10, OpenSSL 3.0.2 15 Mar 2022