1. Automatic ssh/SCP Method =
A is a local host (that is, a machine used to control other hosts );
B is the remote host (that is, the server of the controlled machine), if the IP address is 192.168.60.110;
Both system A and system B are Linux
Run the following command on:
# Ssh-keygen-t rsa (Press enter three times in a row to generate a public key and a private key in the keystore. If no password is set, it will be stored in the. Ssh hidden folder)
# SSH root@192.168.60.110 "mkdir. Ssh" (password required)
# SCP ~ /. Ssh/id_rsa.pub root@192.168.60.110:. Ssh/id_rsa.pub (password required)
Command on B:
# Touch/root/. Ssh/authorized_keys (if this file already exists, skip this one)
# Cat/root/. Ssh/id_rsa.pub>/root/. Ssh/authorized_keys (append the id_rsa.pub content to authorized_keys)
Return to machine:
# SSH root@192.168.60.110 (password not required, login successful)
2. Control n machines for Automatic Logon As described above
Then we need n pairs of keys (key and public key). The Ssh-keygen command can change the name of the key pair at will, for example:
# Ssh-keygen-T RSA
Generating public/private RSA key pair.
Enter file in which to save the key (/root/. Ssh/id_rsa):/root/. Ssh/id_rsa_192.168.60.110
In this way, the private key and public key are named id_rsa_192.168.60.110 and id_rsa_192.168.60.110.pub respectively. Then, the content of the id_rsa_192.168.60.110.pub file is appended to the content of the sever ~ In the/. Ssh/authorized_keys file, specify the local key using the-I parameter of the local SSH command, and log on:
# Ssh-I/root/. Ssh/id_rsa_192.168.60.110 someone@192.168.60.110
The same is true for SCP.
# SCP-I/root/. Ssh/id_rsa_192.168.60.110 filename:/home/someone
Add the following two lines to the file. bashrc. You do not need to input such a long command every time you perform the same operation:
Alias sshcell = 'ssh-I/root/. Ssh/id_rsa_192.168.60.110 110'
Alias scpcell = 'scp-I/root/. Ssh/id_rsa_192.168.60.110 filename someone@192.168.60.110:/home/someone'
In this way, enter the command to implement SSH and SCP Automatic Logon:
# Sshcell
# Scpcell
3. Automatic ssh/SCP script
If you need to access C from A to B, then SSH and SCP are required twice, which is troublesome.
SSH Automatic Logon:
#! /Usr/bin/CT-F
Set timeout 30
Spawn SSH weiqiong @ B
Reset CT "Password :"
Send "pppppp \ r"
CT "] *"
Send "ssh weiqiong @ C \ r"
Reset CT "Password :"
Send "pppppp \ r"
Interact
SCP Copies files from A to C:
#! /Usr/bin/CT-F
Set timeout 300
Set file [lindex $ argv 0]
Spawn SCP $ file weiqiong @ B:/home/weiqiong
Reset CT "Password :"
Send "pppppp \ r"
CT "] *"
Spawn SSH weiqiong @ B
Reset CT "Password :"
Send "pppppp \ r"
CT "] *"
Send "SCP $ file weiqiong @ C:/home/weiqiong \ r"
Reset CT "Password :"
Send "pppppp \ r"
CT "] *"
Exit
Interact
SCP Copies files from C to:
#! /Usr/bin/CT-F
Set timeout 300
Set file [lindex $ argv 0]
Spawn SSH weiqiong @ B
Reset CT "Password :"
Send "pppppp \ r"
CT "] *"
Send "SCP weiqiong @ C:/home/weiqiong/$ file. \ r"
Reset CT "Password :"
Send "pppppp \ r"
CT "] *"
Send "Exit \ r"
CT "] *"
Spawn SCP weiqiong @ B:/home/weiqiong/$ file.
Reset CT "Password :"
Send "pppppp \ r"
Interact
4. Create an SSH/SCP Channel
For example, if my machine is a, the intermediate server is B, and the target server is C <br>
From A to B, from B to C, but a cannot directly SSH to C <br>
Now we will use SSH channel technology to directly transfer files from A to C <br>
1. Ssh-l1234: C: 22 userid @ B <br>
Input B's password <br>
(Port 1234 is the idle port of host a. This Command requires the root user permission on host a. In fact, a channel is established on port 1234 of the host.) <br>
2. Open a new console and type: <br>
SCP-p1234 filename userid @ localhost: <br>
Input C's password