一般写shell脚本多台服务器之间进行操作要打通密码,就是公私钥认证方式。如果用Perl的Net::SSH::Perl和Net::SCP::Expect库不需要创建公私钥,直接用原有ssh帐户就可以实现部署脚本的自动化。
安装方法:
cpan -i Net::SSH::Perl
cpan -i Net::SCP::Expect
注:Net::SSH::Perl依赖gmp,我在mac os上刚开始安装gmp5会报错,换gmp4就没问题。
Net::SSH::Perl:
#查看192.168.1.102服务器的/tmp目录下的文件
my $ssh = Net::SSH::Perl->new('192.168.1.102');
$ssh->login('user', 'password');
$ssh->cmd('ls -al /tmp/');
更多文档:http://search.cpan.org/~bnegrao/Net-SSH-Expect-1.09/lib/Net/SSH/Expect.pod
Net::SCP::Expect:
#将test.tar.gz文件复制到192.168.1.102服务器的/tmp目录下
my $scpe = Net::SCP::Expect->new;
$scpe->login('user', ’password‘);
$scpe->scp("/tmp/test.tar.gz", '192.168.1.102:/tmp/');
更多文档:http://search.cpan.org/~turnstep/Net-SSH-Perl-1.34/lib/Net/SSH/Perl.pm
分享到:
相关推荐
通过shell脚本执行scp和ssh命令
"使用ssh、scp不需要密码" ssh 和scp 是 Linux 系统中常用的远程登陆和文件传输工具,但是使用它们需要输入密码,这就带来了不便。...使用 Expect 和 Pexpect 可以自动化密钥对生成过程,提高工作效率。
使用scp向指定的机器列表指定路径复制文件的脚本,可用于集群批量操作;
标题中的"C#版SSH、SCP,可作为客户端连结LINUX源码"表明这是一个使用C#编程语言实现的SSH(Secure Shell)和SCP(Secure Copy)客户端库,用于连接Linux服务器。SSH是一种网络协议,用于安全地远程登录到服务器,...
### SSH-SCP使用方法详解 #### 一、概述 SSH (Secure Shell) 是一种网络协议,用于计算机之间的安全登录及数据传输。SCP (Secure Copy Protocol) 是基于SSH协议的一个应用,用于安全地在不同主机之间复制文件。SCP...
但我到现在还在对python的恐惧之中(虽然已经在空闲时间努力去学习了),所以使用了shell和expect脚本结合的方式,写了这个批量scp的脚本工具。 expect用于自动化地执行linux环境下的命令行交互任务,例如scp、ssh...
通过学习和熟练掌握这些SSH脚本知识点,你将能够创建高效且安全的自动化运维脚本,无论是用于日常管理任务还是大规模部署场景,都能大大提高工作效率。在实际应用中,不断实践和优化你的脚本,使其更加健壮和适应性...
总结来说,通过使用`sshpass`或密钥对认证,可以在bash脚本中自动化处理SSH和SCP命令,而无需人工干预输入密码。这种方式极大地提高了自动化任务的安全性和效率。但是,强烈建议使用密钥对,因为它提供了更好的安全...
在Ant中集成SSH和SCP能力,可以方便地实现远程服务器的部署、文件传输等操作。 首先,要进行SSH和SCP操作,我们需要依赖一些库,这些库在提供的压缩包文件名列表中已经列出: 1. j2ssh-core-0.2.9.jar:这是J2SSH...
2. **SSH脚本编写**:SSH脚本是用Shell语言(如bash)编写的,包含了多个SSH命令行。在脚本中,可以使用循环、条件语句等高级功能。例如,`for`循环可用于遍历文件列表并逐个上传到远程服务器。 3. **批量文件传输*...
通过使用 Expect,可以将原本需要手动进行的操作,例如 SSH 登录、FTP 登录等,编写成脚本自动执行。这在需要对多台服务器执行相同操作的场景下尤其有用,能够显著提高系统管理员的工作效率。 ### 2. 安装 Expect ...
SCP(Secure Copy Protocol)是一种基于SSH协议的命令行工具,用于在本地和远程主机之间安全地传输文件。 Linux下SSH命令的基本使用方法包括远程连接到一台支持SSH服务的远程主机。远程主机必须开启SSH服务,并且...
-1: 强制scp命令使用协议ssh1 -2: 强制scp命令使用协议ssh2 -4: 强制scp命令只使用IPv4寻址 -6: 强制scp命令只使用IPv6寻址 -B: 使用批处理模式(传输过程中不询问传输口令或短语) -C: 允许压缩。(将-C标志...
Renci.SshNet是一个.NET库,它为开发者提供了一种方便的方式来实现Secure Shell (SSH) 协议,包括Secure Copy (SCP) 和File Transfer Protocol (FTP) 的功能。这个库主要用于安全地远程连接到服务器,执行命令,传输...
在实际应用中,Ganymed SSH-2库广泛应用于自动化运维脚本、远程系统管理工具、持续集成/持续部署(CI/CD)流程以及任何需要安全远程访问的Java项目中。由于其强大的功能和易于使用的API,它成为了Java开发者实现SSH...
总结来说,SSH和SCP都是非常重要的远程管理工具,它们提供了安全的远程登录和文件传输功能。通过指定端口号的方式,我们可以方便地连接到运行非标准SSH端口的服务器上。同时,SFTP作为一种更加强大的文件传输协议,...
### Linux经典脚本expect的基本用法与示例详解 #### 一、expect简介与应用场景 在Linux环境下,系统管理员和开发人员经常会遇到需要自动化执行的任务,尤其是那些涉及到远程登录、文件传输等交互式操作的场景。...
3. **Net::SCP::Expect**:基于Net::SSH::Perl的扩展,用于SCP(Secure Copy Protocol)操作,能够在SSH会话中执行文件的上传和下载。 4. **DBI** 和 **DBD::MySQL**:这两个Perl模块提供与MySQL数据库的接口,使得...