Every time you log in to the test server, you always need to enter a password for ssh login. It's okay if there are few logins, but if there are too many logins, every extra line of command is redundant. RSA authentication login method Creating a key pair Enter the following command in the client (local machine) terminal ssh-keygen -t [rsa|dsa] RSA and DSA represent different algorithms For example: ssh-keygen -t rsa Just keep pressing Enter (no need to set a password) The key file and private key file id_rsa, id_rsa.pub will be generated (if dsa is used, id_dsa, id_dsa.pub will be generated) The generation location is in the /root/.ssh/ folder (I use the root user so under root, the generation process will prompt the file location) .ssh is a hidden folder, use ls -a to view it Put the public key in the server's specified location Method 1: Direct copy 1. Copy the public key to the .ssh folder of the root user of the server (copy it to the .ssh folder of the user you log in as) scp /root/.ssh/id_rsa.pub [email protected]:/root/.ssh/ 2. Install the public key Log in to the server cd /root/.ssh/ cat id_rsa.pub >> authorized_keys Method 2: Use ssh-copy-id command to copy (recommended) One command is OK ssh-copy-id [email protected] verify If you do not enter a password, it will succeed, otherwise it will fail. Precautions The above operation has been tested and there is no problem There will be differences depending on the version of Linux and the user used. If there is a problem, consider the following two points 1. File permission issues for id_rsa.pub and authorized_keys chmod 600 authorized_keys chmod 700 ~/.ssh 2. ssh configuration file vim /etc/ssh/sshd_config #Enable RSA authentication, the default is yes RSAAuthentication yes Enable public key authentication, default is yes PubkeyAuthentication yes #root user ssh loginPermitRootLogin yes (I have not modified these configurations, mine is redhat7.2) Customize a simple shell script Create a file in the common folder touch 164.sh Editing a file File content ssh [email protected] vim 164.sh #Add content ssh [email protected] Save and exit: wq Increase the user's execution permissions chmod u+x 164.sh It's more fun to use it with the tab key ./164.sh Expect command password-free login method Maybe you think it is not good to operate the server system, of course you can just operate it locally. Using the expect command only requires local operation, provided that you have the expect command locally 1. Create a file touch expectssh.sh Add the following content and change the user, ip, and password to your own #!/usr/bin/expect -f set username root set hostname 172.16.0.164 set password 123456 spawn ssh $username@$hostname set timeout 1 expect { "yes/no" {send "yes\r";exp_continue} } expect "$username@$hostname's password:" send "$password\r" interact 2. Add execution permissions to expectssh.sh chmod u+x expectssh.sh 3. Execute commands expect expectssh.sh (1. Must be executed using the expect command 2. You can wrap it in another layer and use bash parsing to execute) The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM. You may also be interested in:
|
<<: Tutorial on how to use profile in MySQL
>>: In-depth analysis of the diff algorithm in React
We all know that after the MySQL database is inst...
Preface Project release always requires packaging...
We need to first combine the air quality data wit...
Table of contents Preface Publish-Subscriber Patt...
First, let’s take a look at the general practices...
What is HTML? To put it simply: HTML is used to m...
Recently, I learned about the Vue project and cam...
Several typical values of innodb_flush_method f...
Today, when I was configuring Tomcat to access th...
Table of contents For example: General writing: S...
Hyperlinks are the most frequently used HTML elem...
The command format for mysql login is: mysql -h [...
Preface BINARY and VARBINARY are somewhat similar...
Introduction: When I looked at interview question...
1. Create a SpringBooot project and package it in...