scp过程中的两个问题解决 “The authenticity of host can‘t be established” “ Permission denied“

  • Post author:
  • Post category:其他


今天解决了scp过程中的两个问题

第一个问题就是在scp过程中报下面的错误

报这个错误The authenticity of host ‘host1 (10.133.41.213)’ can’t be established.的原因是因为clident端的配置文件/etc/ssh/ssh_config里配置

Host *

StrictHostKeyChecking no

上面这个错误只会在第一次连接某个服务器的时候出现

然后我再输入正确的密码后,还出现Authentication failed.这个错误,原因其实出现在服务器端

因为服务器端限制了可以连接该服务器的ip地址

修改服务器端的/etc/ssh/sshd_config文件,添加上该客户端的地址,则会避免这个错误

[crsusr@*****-vm1 main0414]$ scp oracle@host1:/u01/shiphome/main220414/*.zip ./
The authenticity of host 'host1 (10.133.41.213)' can't be established.
ECDSA key fingerprint is SHA256:vTqxjy9/UZS+CgHDzMUphqG/0cH8VMq5Ie2pWP56bsI.
ECDSA key fingerprint is MD5:f1:a4:a0:d3:52:54:ba:e3:77:64:5f:52:ee:21:41:08.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'host1,10.133.41.213' (ECDSA) to the list of known hosts.
Authentication failed.

在我尝试添加上-o StrictHostKeyChecking=no 去避免错误The authenticity of host ‘host1 (10.133.41.213)’ can’t be established之后,并且也输入了正确的密码,还是出现Permission denied, please try again.的原因,其实也是因为服务器端没有允许该客户端连接该服务器,将客户端的ip地址添加到服务器端的/etc/ssh/sshd_config文件就可以解决这个问题

[crsusr@*****-vm1 main0414]$ scp -o StrictHostKeyChecking=no oracle@host1:/u01/shiphome/main220414/*.zip ./
oracle@host1's password:
Permission denied, please try again.
oracle@host1's password:

##########################################@@@@@@@@@

SSH交互式脚本StrictHostKeyChecking选项 benchmode=yes

SSH 公钥检查是一个重要的安全机制,能够防范中间人劫持等黑客攻击。可是在特定状况下,严格的 SSH 公钥检查会破坏一些依赖 SSH 协议的自动化任务,就须要一种手段可以绕过 SSH 的公钥检查。mysql

什么是SSH公钥检查

SSH 链接远程主机时,会检查主机的公钥。若是是第一次该主机,会显示该主机的公钥摘要,提示用户是否信任该主机:sql

The authenticity of host ‘10.0.0.1 (10.0.0.1)’ can’t be established.

ECDSA key fingerprint is 91:63:21:08:4a:96:23:5b:f6:98:c9:a8💿cb:8b:91.

Are you sure you want to continue connecting (yes/no)?

当选择接受,就会将该主机的公钥追加到文件 ~/.ssh/known_hosts 中。当再次链接该主机时,就不会再提示该问题了。

如何去掉公钥确认?

在首次链接服务器时,会弹出公钥确认的提示。这会致使某些自动化任务因为初次链接服务器而任务中断。或者因为~/.ssh/known_hosts 文件内容清空,致使自动化任务中断。 SSH 客户端的 StrictHostKeyChecking 配置指令,能够实现当第一次链接服务器时,自动接受新的公钥。只须要修改 /etc/ssh/ssh_config 文件,包含下列语句:安全

Host *

StrictHostKeyChecking no

或者在 ssh 命令行中用 -o 参数bash

$ ssh -o StrictHostKeyChecking=no 10.0.0.1

——————— 服务器

1: 当经过ssh链接远程服务器的时候,可能会出现如下繁琐场景,须要手工输入yes:ssh

ssh username@ip分布式

这对于某些分布式集群来讲是不行的,甚至致使集群都不能启动成功,对于像pssh,pscp这样的自动化工具来讲,也不但愿这一步的验证,如何在链接的时候不提示这个信息呢:

方法一、 ssh -o “StrictHostKeyChecking no” username@ hostname

方法2:修改 /etc/ssh/ssh_config ,在文件最后添加 StrictHostKeyChecking no,接着重启 ssh 服务

2:远程执行服务器上面的命令能够经过sshpass(当集群机器之间没有免密的时候),若是没有安装,,执行 yum install sshpass -y工具

用法:

http://www.javashuo.com/article/p-qtliznba-ku.html

https://www.aisoutu.com/a/776041



版权声明:本文为wgz7747147820原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。