-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup-part-1.sh
62 lines (48 loc) · 1.79 KB
/
setup-part-1.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/bin/bash
# Prompt the user for input
echo "Enter the remote server's username@ip (e.g. [email protected]):"
read remote_server
echo "Enter the path to the server's .pem or .ppk keypair:"
read keypair_path
echo "Enter the path of the file you want to upload:"
read file_path
# echo "Enter the destination path on the remote server (e.g. /home/user/destination) or leave it empty for default (/home/username/):"
# read remote_destination
remote_destination=""
# If the destination path is empty, use /home/username/
# if [ -z "$remote_destination" ]; then
# username=$(echo "$remote_server" | cut -d '@' -f 1)
# remote_destination="/home/${username}/"
# fi
username=$(echo "$remote_server" | cut -d '@' -f 1)
remote_destination="/home/ubuntu/system/"
# Check if the keypair is .pem or .ppk
key_ext="${keypair_path##*.}"
# Test the connection
if [ "$key_ext" == "pem" ]; then
ssh -i "${keypair_path}" "${remote_server}" exit
status=$?
elif [ "$key_ext" == "ppk" ]; then
eval $(ssh-pageant -k "${keypair_path}")
ssh "${remote_server}" exit
status=$?
else
echo "Invalid keypair extension. Please provide a .pem or .ppk keypair."
exit 1
fi
if [ $status -ne 0 ]; then
echo "Connection failed. Please check your input and try again."
exit 1
fi
# Upload the file
if [ "$key_ext" == "pem" ]; then
# Use rsync with .pem keypair
rsync -avz -e "ssh -i \"${keypair_path}\"" "${file_path}" "${remote_server}:${remote_destination}"
elif [ "$key_ext" == "ppk" ]; then
# Use rsync with .ppk keypair (assuming ssh-pageant is installed and configured)
eval $(ssh-pageant -k "${keypair_path}")
rsync -avz -e "ssh" "${file_path}" "${remote_server}:${remote_destination}"
fi
echo "File uploaded successfully."
ssh -i "${keypair_path}" "${remote_server}"
sudo rm -r setup-part-1.sh