bash脚本中将密码传递给ssh/scp命令方法详解
安装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中就行了
您可能感兴趣的文章:
- scp命令详解,linux两台机器ssh无密码连接
- SSH传输scp免密码登陆的方法
- ssh/scp不需要输入密码的方法
- 详解Linux下SSH远程文件传输命令scp
- expect实现自动scp和ssh登录后执行命令,并向bash提供返回值
- bash脚本输入密码不回显问题的解决方法
- scp 在脚本中使用输入密码的解决方法
- ssh 登陆与配置ssh无密码登陆别的机器与scp命令
- ssh,expect脚本实现远程登录,拷贝命令scp,rsync服务器的搭建
- ssh-copy-id命令详解 & 使用ssh-keygen和ssh-copy-id三步实现SSH无密码登录
- scp 在脚本中使用输入密码的解决方法
- SSH传输scp免密码登陆的方法
- linux scp ssh命令不用输入密码
- python批量操作Linux服务器脚本,ssh密码登录(执行命令、上传、下载)(一)
- BASH命令使用方法详解
- 详解Linux下SSH远程文件传输命令scp
- 详解Linux下SSH远程文件传输命令scp
- Linux多台计算机之间使用ssh、scp无需密码的一种方法
- ssh添加信任关系,使ssh,scp命令不需要 输入密码验证