Detailed explanation of how to pass password to ssh/scp command in bash script

Detailed explanation of how to pass password to ssh/scp command in bash script

Install SSHPASS

For most recent operating systems, the sshpass package is available in the default package repositories. It can be installed on your system using the following command.

On Debian:

$ sudo apt install sshpass

On CentOS:

$ yum --enablerepo=epel -y install sshpass

Using SSHPASS

sshspass uses the sshspass environment variable to store the user password. You need to first use the sshspass variable and password and then use this command. Below is a simple shell script using sshspass.

export SSHPASS=ry3AvbWO0oupYX9HCMzp0Axx

sshpass -e scp testfile.csv [email protected]:/uploads/

You can also run ssh commands using sshpass as shown below

sshpass -e ssh [email protected]

Solve the problem of SCP command requiring password in shell script

Use a key file.

Here it is assumed that host A (192.168.100.3) is used to obtain the file of host B (192.168.100.4).

Execute the following command on host A to generate a pairing key:

ssh-keygen -t rsa

Press Enter when prompted. The public key is saved in the .ssh directory under the user directory. For example, root is stored in:

/root/.ssh/id_rsa.pub

Copy the id_rsa.pub file in the .ssh directory to the ~/.ssh/ directory of host B and rename it to authorized_keys.

Execute commands on host A to establish trust with host B, for example (assuming the IP of host B is: 192.168.100.4):

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

Next, you can use the scp and ssh commands to obtain files from host B without a password. ssh 192.168.100.4 Press Enter and no password is required.

Note: Actually, just add the content of id_rsa.pub to the authorized_keys of the other machine.

You may also be interested in:
  • Vue-CLI 3 scp2 automatic deployment of projects to the server method
  • Python calls scp to upload files to the server example
  • How to use ssh and scp through secret keys in Windows
  • Python executes scp command to copy files and folders to the directory of the remote host
  • Linux uses the scp command to copy files to the local computer and copy local files to the remote server
  • Python Pexpect implements the method of scp copying with password input
  • Detailed explanation of using scp command to copy files remotely in Linux
  • scp copies data from one linux server to another linux server
  • How to implement scp operation in Android

<<:  MySQL batch removes spaces in a certain field

>>:  A brief discussion on the efficiency of MySQL subquery union and in

Recommend

CentOS 7.9 installation and configuration process of zabbix5.0.14

Table of contents 1. Basic environment configurat...

CSS overflow-wrap new property value anywhere usage

1. First, understand the overflow-wrap attribute ...

CSS transparent border background-clip magic

This article mainly introduces the wonderful use ...

Practical method of upgrading PHP to 5.6 in Linux

1: Check the PHP version after entering the termi...

Detailed explanation of docker version es, milvus, minio startup commands

1. es startup command: docker run -itd -e TAKE_FI...

Detailed explanation of the error problem of case when statement

Preface In the MySQL database, sometimes we use j...

Solution to overflow:hidden failure in CSS

Cause of failure Today, when I was writing a caro...

Two methods of MySql comma concatenation string query

The following two functions are used in the same ...

How to use CSS styles and selectors

Three ways to use CSS in HTML: 1. Inline style: s...

Introduction to HTML_PowerNode Java Academy

What is HTML? HTML is a language used to describe...

How to modify the scroll bar style in Vue

Table of contents First of all, you need to know ...

Specific use of MySQL window functions

Table of contents 1. What is a window function? 1...

How to modify Flash SWF files in web pages

I think this is a problem that many people have en...