perl脚本调用openssh不能正确执行(ctl_dir /root/.libnet-openssh-perl/ is not secure)的原因排查

在使用perl脚本的时候,通过Net::OpenSSH去获取执行节点的信息是一种常用的方法。在某个环境中,执行命令的时候出错,下面展示一下相关的代码

复制代码
    my $ssh_ops = {user => "root", password => "password", master_opts => [-o => "UserKnownHostsFile=/dev/null", -o => "StrictHostKeyChecking=no"]};
    my $ssh = Net::OpenSSH->new($host_ip, %$ssh_ops);
    # while( my ($key,$value) = each %ssh) {
    #     if (defined $value) {
    #         print "\n==== debug: $key => $value\n";
    #     }        
    # }
    $ssh->error and return "fail: cann't access by ssh";

在这段代码执行的时候,直接返回"fail: cann't access by ssh" 通过手动的方式进行验证,在当前节点通过ssh方式是可以正常登录指定节点的。

将注释的内容放开,进行调试,打印出如下信息:

复制代码
==== debug: _error => ctl_dir /root/.libnet-openssh-perl/ is not secure

==== debug: _host => 10.0.123.123

这个时候查看/root文件夹的权限

复制代码
执行命令 :stat /root                                                                                                                                  23-08-03 - 13:45:41
  File: '/root'
  Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: 802h/2050d	Inode: 8912897     Links: 29
Access: (0775/drwxrwxr-x)  Uid: (    0/    root)   Gid: (    0/    root)

注意,这里的权限变为了0755,正常情况下 /root目录的权限应该是Access: (0550/dr-xr-x---)

使用chmod命令将/root文件夹的权限更改一下,再次执行就正常了。

建议: 不要轻易更改/root等系统文件夹的属性,避免一些不必要的问题!

相关推荐
开开心心就好8 天前
竖式除法出题工具,整除余数混合模式
运维·服务器·前端·javascript·ocr·perl·1024程序员节
知已难寻11 天前
00 · OpenStack 总纲——从云计算到 OpenStack 全景
运维·服务器·云原生·云计算·负载均衡·openstack·perl
开开心心就好11 天前
电脑语音实时转文字工具,会议记录很省事
运维·服务器·前端·c#·ocr·perl·1024程序员节
开开心心就好18 天前
课堂随机点名工具,绿色版免安装双击即用
java·服务器·前端·ffmpeg·音视频·perl·symfony
GIS数据转换器21 天前
地下空间综合管廊运营管理平台
大数据·开发语言·人工智能·经验分享·perl
acd1200921 天前
静态资源 CDN 回源,那些藏在 304 里面的坑
perl
开开心心_Every24 天前
黄金价格软件国内外价格实时监控超方便
运维·服务器·游戏·智能手机·pdf·lua·perl
开开心心_Every25 天前
文件查重软件批量删除重复文件释放空间
java·开发语言·c#·计算机外设·ocr·excel·perl
开开心心就好1 个月前
一元二次方程求解工具,答案带详细步骤
java·服务器·开发语言·算法·pdf·ocr·perl
AI情绪识别开源1 个月前
HFpEF 心房-心室耦联效率无创监测方向(AVCEI)
typescript·laravel·perl