专栏首页恩蓝脚本bash脚本中将密码传递给ssh/scp命令方法详解

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中就行了

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 查看linux ssh服务信息及运行状态方法

    关于ssh服务端配置有不少文章,例如 Linux下ssh服务配置,这里仅列举出一些查看ssh服务相关信息的常用命令.

    砸漏
  • git bash配置ssh 登录 Linux的方法

    1、首先在 Linux 服务器上生成公钥和私钥文件,默认的存放目录在~/.ssh下。

    砸漏
  • 使用VSCode的Remote-SSH连接Linux进行远程开发

    首先打开你的VSCode,找到Extensions,搜索Remote,下载Remote-Developoment插件,会自动安装其他的Remote插件,其中会包...

    砸漏
  • ssh password and passphrase

    ssh password and passphrase 1、ssh-keygen -t rsa     采用默认路径,输入passphrase。  2、scp ...

    joshua317
  • linux - ubuntu 配置 ssh

    1.安装 Ubuntu缺省安装了openssh-client,所以在这里就不安装了,如果你的系统没有安装的话,再用apt-get安装上即可。 安装ssh-ser...

    forxtz
  • 使用SSH登陆git

    一、SSH介绍 可以看这篇博客,http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html 二、用...

    叔叔
  • 远程连接 Ubuntu19.1

    注意:如果你是和我一样下载安装的 Ubuntu19.1 镜像直接安装的可以跳过这一大步,直接去第二步。因为Ubuntu已经默认配置好了。

    wsuo
  • 新机器下git clone代码新思路

    如果不想人工干预,或者到时批量机器,后者docker中使用呢? 我个人之前的做法是引入expect命令了,流程还是没有变动的,只是在出现交互需要的时候,...

    千往
  • 如何让Git记住用户名和密码

    每次提交代码都要输入用户名密码,十分麻烦,教大家怎么让Git记住密码。 Https记住密码 永久记住密码 git config --global credent...

    Java技术栈
  • linux上配置ssh实现免密登录

    当有多台服务器彼此进行通信时,可以通过使用ssh来免去输入密码的步骤。这篇文章将以两台服务器作为范例,演示如何通过ssh进行登录。

    张子阳

扫码关注云+社区

领取腾讯云代金券