背景:

打算把服务器的nacos拷贝到另一台服务器上面,但是另一台服务器之前是用的私钥进行登录的,所以用scp的时候一直报错。错误信息如下:

  1. [root@localhost opt]# scp -r nacos_trade 111.229.100.74:/opt/trade/nacos_trade
  2. Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
  3. lost connection

方法:

其实出现Permission denied (publickey,gssapi-keyex,gssapi-with-mic)这个报错时我们也许可以庆幸下,这个报错说明我们的云平台上的防火墙和虚机的sshd服务都是好的。只不过是我们哪边的配置有些问题。
这个报错中publickey Permission denied的报错信息其实已经告诉我们问题了我们的公钥是错误的,一般情况下我们都可以理解这个问题,并快速解决问题,将公钥放到服务器的~/.ssh/authorized_keys文件中便可。但是尝试过”ssh centos@ip”后得到这个报错就会有点蒙圈了,后来实验了才知道这是因为PasswordAuthentication这个字段为”no”的缘故。

  1. sudo vim /etc/ssh/sshd_config
  2. 增加如下修改
  3. PasswordAuthentication yes
  4. sudo systemctl restart sshd

或者

  1. sudo ~/ssh/authorized_keys
  2. 添加你本机的公钥到该文件中

注意:
如果你喜欢用root用户登入的话,要确保

  1. /etc/ssh/sshd_config
  2. PermitRootLogin yes