网络运营 > 服务器 > Linux

bash脚本中将密码传递给ssh/scp命令方法详解

63人参与2019-07-19

安装sshpass

对于大多数最新的操作系统,sshpass软件包在默认软件包存储库中可用。可以使用以下命令在系统上安装它。

在debian上:

$ sudo apt install sshpass

在centos上:

$ yum --enablerepo = epel -y install sshpass

使用sshpass

sshspass使用sshspass环境变量存储用户密码。需要首先使用sshspass变量和密码,然后使用此命令。下面是一个使用sshspass的简单shell脚本。

export sshpass=ry3avbwo0oupyx9hcmzp0axx

sshpass -e scp testfile.csv user@example.com:/uploads/

还可以使用sshpass运行ssh命令,如下所示

sshpass -e ssh user@example.com

shell脚本中解决scp命令需要输入密码的问题

使用密钥文件。

这里假设主机a(192.168.100.3)用来获到主机b(192.168.100.4)的文件。

在主机a上执行如下命令来生成配对密钥:

ssh-keygen -t rsa

遇到提示回车默认即可,公钥被存到用户目录下.ssh目录,比如root存放在:

/root/.ssh/id_rsa.pub

将 .ssh 目录中的 id_rsa.pub 文件复制到 主机b 的 ~/.ssh/ 目录中,并改名为 authorized_keys,

到主机a中执行命令和主机b建立信任,例(假设主机b的ip为:192.168.100.4):

scp ~/.ssh/id_rsa.pub 192.168.100.4:/root/.ssh/authorized_keys

下面就可以用scp、ssh命令不需要密码来获取主机b的文件了ssh 192.168.100.4 回车就不需要密码了。

注:其实id_rsa.pub内容添加到对方机器的authorized_keys中就行了

您希望与广大热心网友互动!!点此进行留言回复

相关推荐

bash脚本中将密码传递给ssh/scp命令方法详解

07-19

shell查找当前目录下大于1M的文件的三种方法分享

12-14

Linux tar 命令出现 Cowardly refusing to create an empty archive 错误解决办法

06-25

Linux中利用sudo进行赋权的方法详解

05-04

阿里云基于CentOS用vsftpd搭建FTP服务器

06-16

CentoS6.5环境下redis4.0.1(stable)安装和主从复制配置方法

05-24

Git 创建分支提交远程分支详解

08-06

Linux上通过SSH挂载远程文件系统方法详解

07-19

在Linux中如何查看可用的网络接口详解

07-19

Linux操作系统与命令知识汇总

06-04

最近更新

Ubuntu16.04搭建php5.6Web服务器环境

07-19

在Bash脚本中创建和使用数组方法总结

07-19

Linux上通过SSH挂载远程文件系统方法详解

07-19

bash脚本中将密码传递给ssh/scp命令方法详解

07-19

Linux中使用命令more,less,cat查看文件内容

07-19

Linux中chown与chmod两个命令的区别详解

07-19

增强Linux和Unix服务器安全性的方法详解

07-19

使用top命令分析linux系统性能的详解

07-19

Linux系统查看CPU、机器型号、内存等信息

07-19

在Linux中如何查看可用的网络接口详解

07-19

网友评论

已有0条评论