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

本文详细讲述了在SCP过程中遇到的两个问题:一是初次连接时的SSH主机验证,二是服务器IP限制导致的权限问题。通过调整client和server的配置,解决了公钥验证和StrictHostKeyChecking的设置,确保自动化任务顺利进行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天解决了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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值