Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
Apache/2.4.52 (Ubuntu)
Server IP : 192.168.1.1 & Your IP : 13.59.51.100
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
snap /
core24 /
739 /
usr /
bin /
Delete
Unzip
Name
Size
Permission
Date
Action
[
54.44
KB
-rwxr-xr-x
2024-04-05 14:36
aa-enabled
18.3
KB
-rwxr-xr-x
2024-07-18 18:28
aa-exec
18.3
KB
-rwxr-xr-x
2024-07-18 18:28
aa-features-abi
18.3
KB
-rwxr-xr-x
2024-07-18 18:28
addpart
14.38
KB
-rwxr-xr-x
2024-08-09 02:33
arch
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
awk
166.77
KB
-rwxr-xr-x
2024-04-08 16:12
b2sum
54.51
KB
-rwxr-xr-x
2024-04-05 14:36
base32
38.51
KB
-rwxr-xr-x
2024-04-05 14:36
base64
38.51
KB
-rwxr-xr-x
2024-04-05 14:36
basename
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
basenc
46.51
KB
-rwxr-xr-x
2024-04-05 14:36
bash
1.38
MB
-rwxr-xr-x
2024-03-31 08:41
bashbug
6.82
KB
-rwxr-xr-x
2024-03-31 08:41
bunzip2
38.38
KB
-rwxr-xr-x
2024-08-09 02:33
busctl
94.59
KB
-rwxr-xr-x
2024-08-08 14:51
bzcat
38.38
KB
-rwxr-xr-x
2024-08-09 02:33
bzcmp
2.17
KB
-rwxr-xr-x
2024-08-09 02:33
bzdiff
2.17
KB
-rwxr-xr-x
2024-08-09 02:33
bzegrep
3.69
KB
-rwxr-xr-x
2024-08-09 02:33
bzexe
4.78
KB
-rwxr-xr-x
2021-11-27 12:25
bzfgrep
3.69
KB
-rwxr-xr-x
2024-08-09 02:33
bzgrep
3.69
KB
-rwxr-xr-x
2024-08-09 02:33
bzip2
38.38
KB
-rwxr-xr-x
2024-08-09 02:33
bzip2recover
18.3
KB
-rwxr-xr-x
2024-08-09 02:33
bzless
1.27
KB
-rwxr-xr-x
2024-08-09 02:33
bzmore
1.27
KB
-rwxr-xr-x
2024-08-09 02:33
captoinfo
90.41
KB
-rwxr-xr-x
2024-04-08 16:14
cat
38.46
KB
-rwxr-xr-x
2024-04-05 14:36
chage
70.49
KB
-rwxr-sr-x
2024-05-30 14:52
chardet
221
B
-rwxr-xr-x
2023-08-20 12:12
chardetect
221
B
-rwxr-xr-x
2023-08-20 12:12
chattr
14.31
KB
-rwxr-xr-x
2024-04-28 23:44
chcon
58.51
KB
-rwxr-xr-x
2024-04-05 14:36
chfn
71.09
KB
-rwsr-xr-x
2024-05-30 14:52
chgrp
58.51
KB
-rwxr-xr-x
2024-04-05 14:36
chmod
54.51
KB
-rwxr-xr-x
2024-04-05 14:36
choom
22.38
KB
-rwxr-xr-x
2024-08-09 02:33
chown
58.51
KB
-rwxr-xr-x
2024-04-05 14:36
chrt
30.38
KB
-rwxr-xr-x
2024-08-09 02:33
chsh
43.71
KB
-rwsr-xr-x
2024-05-30 14:52
cksum
102.52
KB
-rwxr-xr-x
2024-04-05 14:36
clear
14.31
KB
-rwxr-xr-x
2024-04-08 16:14
clear_console
14.23
KB
-rwxr-xr-x
2024-03-31 08:41
cloud-id
966
B
-rwxr-xr-x
2024-12-02 19:09
cloud-init
970
B
-rwxr-xr-x
2024-12-02 19:09
cloud-init-per
2.06
KB
-rwxr-xr-x
2024-11-25 16:09
cmp
42.39
KB
-rwxr-xr-x
2024-04-08 15:55
comm
38.52
KB
-rwxr-xr-x
2024-04-05 14:36
core-sshd-host-keygen
1.49
KB
-rwxr-xr-x
2024-12-17 16:03
coredumpctl
82.66
KB
-rwxr-xr-x
2024-08-08 14:51
cp
138.52
KB
-rwxr-xr-x
2024-04-05 14:36
csplit
50.51
KB
-rwxr-xr-x
2024-04-05 14:36
ctstat
22.66
KB
-rwxr-xr-x
2024-03-31 09:00
cut
38.51
KB
-rwxr-xr-x
2024-04-05 14:36
cvtsudoers
321.13
KB
-rwxr-xr-x
2024-04-08 14:50
dash
126.74
KB
-rwxr-xr-x
2024-03-31 08:47
date
106.51
KB
-rwxr-xr-x
2024-04-05 14:36
dbus-cleanup-sockets
14.29
KB
-rwxr-xr-x
2024-08-09 02:33
dbus-daemon
230.64
KB
-rwxr-xr-x
2024-08-09 02:33
dbus-monitor
26.3
KB
-rwxr-xr-x
2024-08-09 02:33
dbus-run-session
14.3
KB
-rwxr-xr-x
2024-08-09 02:33
dbus-send
30.29
KB
-rwxr-xr-x
2024-08-09 02:33
dbus-update-activation-environment
14.29
KB
-rwxr-xr-x
2024-08-09 02:33
dbus-uuidgen
14.29
KB
-rwxr-xr-x
2024-08-09 02:33
dd
70.54
KB
-rwxr-xr-x
2024-04-05 14:36
delpart
14.38
KB
-rwxr-xr-x
2024-08-09 02:33
df
87.08
KB
-rwxr-xr-x
2024-04-05 14:36
diff
134.55
KB
-rwxr-xr-x
2024-04-08 15:55
diff3
58.52
KB
-rwxr-xr-x
2024-04-08 15:55
dir
138.98
KB
-rwxr-xr-x
2024-04-05 14:36
dircolors
46.52
KB
-rwxr-xr-x
2024-04-05 14:36
dirname
34.38
KB
-rwxr-xr-x
2024-04-05 14:36
dmesg
68.64
KB
-rwxr-xr-x
2024-08-09 02:33
dnsdomainname
22.23
KB
-rwxr-xr-x
2024-04-08 15:59
domainname
22.23
KB
-rwxr-xr-x
2024-04-08 15:59
dpkg-deb
142.58
KB
-rwxr-xr-x
2024-07-17 09:09
dpkg-realpath
4.09
KB
-rwxr-xr-x
2024-07-17 09:09
du
98.51
KB
-rwxr-xr-x
2024-04-05 14:36
ec2metadata
8.38
KB
-rwxr-xr-x
2022-06-03 10:51
echo
34.38
KB
-rwxr-xr-x
2024-04-05 14:36
editor
1.66
MB
-rwxr-xr-x
2024-11-06 19:04
egrep
41
B
-rwxr-xr-x
2024-04-08 15:58
env
46.95
KB
-rwxr-xr-x
2024-04-05 14:36
ex
1.66
MB
-rwxr-xr-x
2024-11-06 19:04
expand
34.53
KB
-rwxr-xr-x
2024-04-05 14:36
expiry
26.52
KB
-rwxr-sr-x
2024-05-30 14:52
expr
42.41
KB
-rwxr-xr-x
2024-04-05 14:36
factor
62.51
KB
-rwxr-xr-x
2024-04-05 14:36
faillog
22.63
KB
-rwxr-xr-x
2024-05-30 14:52
fallocate
26.38
KB
-rwxr-xr-x
2024-08-09 02:33
false
26.3
KB
-rwxr-xr-x
2024-04-05 14:36
fgrep
41
B
-rwxr-xr-x
2024-04-08 15:58
finalrd
2.06
KB
-rwxr-xr-x
2022-02-16 16:56
find
199.48
KB
-rwxr-xr-x
2024-04-08 15:57
findmnt
67.66
KB
-rwxr-xr-x
2024-08-09 02:33
flock
22.48
KB
-rwxr-xr-x
2024-08-09 02:33
fmt
38.51
KB
-rwxr-xr-x
2024-04-05 14:36
fold
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
free
26.38
KB
-rwxr-xr-x
2024-09-26 08:44
gdbserver
615.98
KB
-rwxr-xr-x
2024-04-03 10:51
getconf
26.36
KB
-rwxr-xr-x
2024-08-08 14:47
getent
38.72
KB
-rwxr-xr-x
2024-08-08 14:47
getopt
22.38
KB
-rwxr-xr-x
2024-08-09 02:33
gpasswd
74.46
KB
-rwsr-xr-x
2024-05-30 14:52
gpgv
303.14
KB
-rwxr-xr-x
2024-04-06 16:25
grep
182.45
KB
-rwxr-xr-x
2024-04-08 15:58
groups
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
growpart
29.19
KB
-rwxr-xr-x
2022-06-03 10:51
gunzip
2.29
KB
-rwxr-xr-x
2024-04-08 15:58
gzexe
6.3
KB
-rwxr-xr-x
2024-04-08 15:58
gzip
91.23
KB
-rwxr-xr-x
2024-04-08 15:58
hardlink
46.48
KB
-rwxr-xr-x
2024-08-09 02:33
head
42.51
KB
-rwxr-xr-x
2024-04-05 14:36
hostid
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
hostname
22.23
KB
-rwxr-xr-x
2024-04-08 15:59
hostnamectl
30.45
KB
-rwxr-xr-x
2024-08-08 14:51
i386
26.65
KB
-rwxr-xr-x
2024-08-09 02:33
iconv
66.48
KB
-rwxr-xr-x
2024-08-08 14:47
id
38.51
KB
-rwxr-xr-x
2024-04-05 14:36
infocmp
66.38
KB
-rwxr-xr-x
2024-04-08 16:14
infotocap
90.41
KB
-rwxr-xr-x
2024-04-08 16:14
install
142.52
KB
-rwxr-xr-x
2024-04-05 14:36
ionice
18.38
KB
-rwxr-xr-x
2024-08-09 02:33
ip
754.74
KB
-rwxr-xr-x
2024-03-31 09:00
ipcmk
22.45
KB
-rwxr-xr-x
2024-08-09 02:33
ipcrm
18.38
KB
-rwxr-xr-x
2024-08-09 02:33
ipcs
38.38
KB
-rwxr-xr-x
2024-08-09 02:33
iptables-xml
92.95
KB
-rwxr-xr-x
2024-04-08 15:59
ischroot
14.48
KB
-rwxr-xr-x
2024-03-31 08:47
join
50.55
KB
-rwxr-xr-x
2024-04-05 14:36
journalctl
78.91
KB
-rwxr-xr-x
2024-08-08 14:51
json-patch-jsondiff
1004
B
-rwxr-xr-x
2023-08-21 13:10
jsondiff
1004
B
-rwxr-xr-x
2023-08-21 13:10
jsonpatch
3.77
KB
-rwxr-xr-x
2023-08-21 13:10
jsonpointer
1.79
KB
-rwxr-xr-x
2020-01-24 03:25
jsonschema
213
B
-rwxr-xr-x
2023-08-14 21:45
kernel-install
54.67
KB
-rwxr-xr-x
2024-08-08 14:51
kill
22.38
KB
-rwxr-xr-x
2024-09-26 08:44
kmod
170.24
KB
-rwxr-xr-x
2024-04-18 10:06
kmodsign
18.45
KB
-rwxr-xr-x
2024-04-08 14:49
last
34.38
KB
-rwxr-xr-x
2024-08-09 02:33
lastb
34.38
KB
-rwxr-xr-x
2024-08-09 02:33
lastlog
27.79
KB
-rwxr-xr-x
2024-05-30 14:52
lcf
7.6
KB
-rwxr-xr-x
2023-01-27 13:29
ld.so
231.07
KB
-rwxr-xr-x
2024-08-08 14:47
ldd
5.26
KB
-rwxr-xr-x
2024-08-08 14:47
less
190.38
KB
-rwxr-xr-x
2024-04-28 11:44
lessecho
14.31
KB
-rwxr-xr-x
2024-04-28 11:44
lessfile
8.83
KB
-rwxr-xr-x
2023-02-12 10:17
lesskey
23.7
KB
-rwxr-xr-x
2024-04-28 11:44
lesspipe
8.83
KB
-rwxr-xr-x
2023-02-12 10:17
link
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
linux32
26.65
KB
-rwxr-xr-x
2024-08-09 02:33
linux64
26.65
KB
-rwxr-xr-x
2024-08-09 02:33
ln
54.51
KB
-rwxr-xr-x
2024-04-05 14:36
lnstat
22.66
KB
-rwxr-xr-x
2024-03-31 09:00
locale
49.63
KB
-rwxr-xr-x
2024-08-08 14:47
locale-check
14.15
KB
-rwxr-xr-x
2024-08-23 14:20
localectl
26.45
KB
-rwxr-xr-x
2024-08-08 14:51
localedef
319.09
KB
-rwxr-xr-x
2024-08-08 14:47
logger
38.97
KB
-rwxr-xr-x
2024-08-09 02:33
login
51.81
KB
-rwxr-xr-x
2024-05-30 14:52
loginctl
66.58
KB
-rwxr-xr-x
2024-08-08 14:51
logname
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
ls
138.98
KB
-rwxr-xr-x
2024-04-05 14:36
lsattr
14.31
KB
-rwxr-xr-x
2024-04-28 23:44
lsblk
146.38
KB
-rwxr-xr-x
2024-08-09 02:33
lscpu
110.38
KB
-rwxr-xr-x
2024-08-09 02:33
lsipc
50.38
KB
-rwxr-xr-x
2024-08-09 02:33
lslocks
30.77
KB
-rwxr-xr-x
2024-08-09 02:33
lslogins
50.38
KB
-rwxr-xr-x
2024-08-09 02:33
lsmem
38.38
KB
-rwxr-xr-x
2024-08-09 02:33
lsmod
170.24
KB
-rwxr-xr-x
2024-04-18 10:06
lsns
42.38
KB
-rwxr-xr-x
2024-08-09 02:33
man
128
B
-rwxr-xr-x
2024-12-17 16:03
mawk
166.77
KB
-rwxr-xr-x
2024-04-08 16:12
mcookie
26.45
KB
-rwxr-xr-x
2024-08-09 02:33
md5sum
38.41
KB
-rwxr-xr-x
2024-04-05 14:36
md5sum.textutils
38.41
KB
-rwxr-xr-x
2024-04-05 14:36
mesg
14.38
KB
-rwxr-xr-x
2024-08-09 02:33
mkdir
74.51
KB
-rwxr-xr-x
2024-04-05 14:36
mkfifo
42.51
KB
-rwxr-xr-x
2024-04-05 14:36
mknod
42.51
KB
-rwxr-xr-x
2024-04-05 14:36
mksquashfs
286.95
KB
-rwxr-xr-x
2024-04-08 16:20
mkswapfile
865
B
-rwxr-xr-x
2024-12-17 16:03
mktemp
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
more
46.38
KB
-rwxr-xr-x
2024-08-09 02:33
mount
50.38
KB
-rwsr-xr-x
2024-08-09 02:33
mountpoint
18.38
KB
-rwxr-xr-x
2024-08-09 02:33
mv
134.52
KB
-rwxr-xr-x
2024-04-05 14:36
namei
22.38
KB
-rwxr-xr-x
2024-08-09 02:33
nawk
166.77
KB
-rwxr-xr-x
2024-04-08 16:12
nc
38.63
KB
-rwxr-xr-x
2024-04-08 16:14
nc.openbsd
38.63
KB
-rwxr-xr-x
2024-04-08 16:14
netcat
38.63
KB
-rwxr-xr-x
2024-04-08 16:14
networkctl
122.58
KB
-rwxr-xr-x
2024-08-08 14:51
newgrp
39.71
KB
-rwsr-xr-x
2024-05-30 14:52
nice
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
nisdomainname
22.23
KB
-rwxr-xr-x
2024-04-08 15:59
nl
38.6
KB
-rwxr-xr-x
2024-04-05 14:36
nohup
34.41
KB
-rwxr-xr-x
2024-04-05 14:36
nproc
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
nsenter
30.6
KB
-rwxr-xr-x
2024-08-09 02:33
nstat
30.38
KB
-rwxr-xr-x
2024-03-31 09:00
numfmt
58.54
KB
-rwxr-xr-x
2024-04-05 14:36
od
70.51
KB
-rwxr-xr-x
2024-04-05 14:36
openssl
981.8
KB
-rwxr-xr-x
2024-08-20 17:05
p11-kit
206.7
KB
-rwxr-xr-x
2024-08-09 02:33
p11tool
218.38
KB
-rwxr-xr-x
2024-08-09 02:33
pager
190.38
KB
-rwxr-xr-x
2024-04-28 11:44
partx
62.38
KB
-rwxr-xr-x
2024-08-09 02:33
passwd
62.65
KB
-rwsr-xr-x
2024-05-30 14:52
paste
38.41
KB
-rwxr-xr-x
2024-04-05 14:36
pathchk
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
pdb3
67.83
KB
-rwxr-xr-x
2024-11-06 18:32
pdb3.12
67.83
KB
-rwxr-xr-x
2024-11-06 18:32
pgrep
34.47
KB
-rwxr-xr-x
2024-09-26 08:44
pidof
26.23
KB
-rwxr-xr-x
2024-04-08 16:20
pidwait
34.47
KB
-rwxr-xr-x
2024-09-26 08:44
ping
87.66
KB
-rwxr-xr-x
2024-04-08 16:00
ping4
87.66
KB
-rwxr-xr-x
2024-04-08 16:00
ping6
87.66
KB
-rwxr-xr-x
2024-04-08 16:00
pinky
38.41
KB
-rwxr-xr-x
2024-04-05 14:36
pkaction
18.3
KB
-rwxr-xr-x
2024-04-03 18:26
pkcheck
22.3
KB
-rwxr-xr-x
2024-04-03 18:26
pkcs11-tool
184.61
KB
-rwxr-xr-x
2024-04-01 07:06
pkill
34.47
KB
-rwxr-xr-x
2024-09-26 08:44
pkttyagent
22.3
KB
-rwxr-xr-x
2024-04-03 18:26
pldd
22.44
KB
-rwxr-xr-x
2024-08-08 14:47
plymouth
46.3
KB
-rwxr-xr-x
2024-03-31 08:14
pmap
34.4
KB
-rwxr-xr-x
2024-09-26 08:44
pr
70.58
KB
-rwxr-xr-x
2024-04-05 14:36
printenv
34.38
KB
-rwxr-xr-x
2024-04-05 14:36
printf
54.44
KB
-rwxr-xr-x
2024-04-05 14:36
prlimit
26.89
KB
-rwxr-xr-x
2024-08-09 02:33
ps
142.99
KB
-rwxr-xr-x
2024-09-26 08:44
ptx
54.54
KB
-rwxr-xr-x
2024-04-05 14:36
pwd
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
pwdx
14.38
KB
-rwxr-xr-x
2024-09-26 08:44
py3clean
7.63
KB
-rwxr-xr-x
2024-08-07 17:44
py3compile
13
KB
-rwxr-xr-x
2024-08-07 17:44
py3versions
12.52
KB
-rwxr-xr-x
2024-08-07 17:44
pydoc3
80
B
-rwxr-xr-x
2024-11-06 18:32
pydoc3.12
80
B
-rwxr-xr-x
2024-11-06 18:32
pygettext3
23.66
KB
-rwxr-xr-x
2024-11-06 18:32
pygettext3.12
23.66
KB
-rwxr-xr-x
2024-11-06 18:32
pyserial-miniterm
975
B
-rwxr-xr-x
2023-11-24 10:38
pyserial-ports
969
B
-rwxr-xr-x
2023-11-24 10:38
python3
7.65
MB
-rwxr-xr-x
2024-11-06 18:32
python3.12
7.65
MB
-rwxr-xr-x
2024-11-06 18:32
rbash
1.38
MB
-rwxr-xr-x
2024-03-31 08:41
rdma
102.52
KB
-rwxr-xr-x
2024-03-31 09:00
readlink
42.41
KB
-rwxr-xr-x
2024-04-05 14:36
realpath
42.41
KB
-rwxr-xr-x
2024-04-05 14:36
rename.ul
22.38
KB
-rwxr-xr-x
2024-08-09 02:33
renice
14.38
KB
-rwxr-xr-x
2024-08-09 02:33
reset
26.31
KB
-rwxr-xr-x
2024-04-08 16:14
resizepart
22.38
KB
-rwxr-xr-x
2024-08-09 02:33
resolvectl
158.67
KB
-rwxr-xr-x
2024-08-08 14:51
rev
14.38
KB
-rwxr-xr-x
2024-08-09 02:33
rgrep
30
B
-rwxr-xr-x
2023-07-21 14:47
rm
58.51
KB
-rwxr-xr-x
2024-04-05 14:36
rmdir
46.41
KB
-rwxr-xr-x
2024-04-05 14:36
routel
1.62
KB
-rwxr-xr-x
2024-03-31 09:00
rtstat
22.66
KB
-rwxr-xr-x
2024-03-31 09:00
run-parts
26.82
KB
-rwxr-xr-x
2024-03-31 08:47
runcon
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
rview
1.66
MB
-rwxr-xr-x
2024-11-06 19:04
savelog
10.24
KB
-rwxr-xr-x
2024-03-31 08:47
sbattach
22.54
KB
-rwxr-xr-x
2024-04-08 14:49
sbkeysync
34.74
KB
-rwxr-xr-x
2024-04-08 14:49
sbsiglist
14.6
KB
-rwxr-xr-x
2024-04-08 14:49
sbsign
34.7
KB
-rwxr-xr-x
2024-04-08 14:49
sbvarsign
22.73
KB
-rwxr-xr-x
2024-04-08 14:49
sbverify
30.61
KB
-rwxr-xr-x
2024-04-08 14:49
scp
134.59
KB
-rwxr-xr-x
2024-08-09 02:33
script
54.38
KB
-rwxr-xr-x
2024-08-09 02:33
scriptlive
42.38
KB
-rwxr-xr-x
2024-08-09 02:33
scriptreplay
34.38
KB
-rwxr-xr-x
2024-08-09 02:33
sdiff
50.39
KB
-rwxr-xr-x
2024-04-08 15:55
sed
110.57
KB
-rwxr-xr-x
2024-04-08 16:19
select-editor
2.39
KB
-rwxr-xr-x
2024-02-04 18:05
sensible-browser
1.55
KB
-rwxr-xr-x
2024-02-04 18:05
sensible-editor
1.52
KB
-rwxr-xr-x
2024-02-04 18:05
sensible-pager
921
B
-rwxr-xr-x
2024-02-04 18:05
sensible-terminal
1.15
KB
-rwxr-xr-x
2024-02-04 18:05
seq
50.51
KB
-rwxr-xr-x
2024-04-05 14:36
setarch
26.65
KB
-rwxr-xr-x
2024-08-09 02:33
setpriv
38.38
KB
-rwxr-xr-x
2024-08-09 02:33
setsid
14.38
KB
-rwxr-xr-x
2024-08-09 02:33
setterm
34.38
KB
-rwxr-xr-x
2024-08-09 02:33
sftp
150.66
KB
-rwxr-xr-x
2024-08-09 02:33
sg
39.71
KB
-rwsr-xr-x
2024-05-30 14:52
sh
126.74
KB
-rwxr-xr-x
2024-03-31 08:47
sha1sum
38.41
KB
-rwxr-xr-x
2024-04-05 14:36
sha224sum
38.41
KB
-rwxr-xr-x
2024-04-05 14:36
sha256sum
38.41
KB
-rwxr-xr-x
2024-04-05 14:36
sha384sum
38.41
KB
-rwxr-xr-x
2024-04-05 14:36
sha512sum
38.41
KB
-rwxr-xr-x
2024-04-05 14:36
shred
54.51
KB
-rwxr-xr-x
2024-04-05 14:36
shuf
46.51
KB
-rwxr-xr-x
2024-04-05 14:36
skill
26.41
KB
-rwxr-xr-x
2024-09-26 08:44
slabtop
22.44
KB
-rwxr-xr-x
2024-09-26 08:44
sleep
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
slogin
827.04
KB
-rwxr-xr-x
2024-08-09 02:33
snap
20.68
MB
-rwxr-xr-x
2025-04-05 19:10
snice
26.41
KB
-rwxr-xr-x
2024-09-26 08:44
sort
102.8
KB
-rwxr-xr-x
2024-04-05 14:36
splash-client
404
B
-rwxr-xr-x
2024-12-17 16:03
split
54.94
KB
-rwxr-xr-x
2024-04-05 14:36
sqfscat
147.9
KB
-rwxr-xr-x
2024-04-08 16:20
sqfstar
286.95
KB
-rwxr-xr-x
2024-04-08 16:20
ss
129.07
KB
-rwxr-xr-x
2024-03-31 09:00
ssh
827.04
KB
-rwxr-xr-x
2024-08-09 02:33
ssh-add
294.42
KB
-rwxr-xr-x
2024-08-09 02:33
ssh-agent
302.43
KB
-rwxr-sr-x
2024-08-09 02:33
ssh-argv0
1.42
KB
-rwxr-xr-x
2024-04-03 22:09
ssh-copy-id
12.77
KB
-rwxr-xr-x
2023-12-18 14:59
ssh-keygen
442.44
KB
-rwxr-xr-x
2024-08-09 02:33
ssh-keyscan
330.44
KB
-rwxr-xr-x
2024-08-09 02:33
stat
86.52
KB
-rwxr-xr-x
2024-04-05 14:36
stdbuf
50.51
KB
-rwxr-xr-x
2024-04-05 14:36
stty
78.52
KB
-rwxr-xr-x
2024-04-05 14:36
su
54.38
KB
-rwsr-xr-x
2024-08-09 02:33
sudo
271.42
KB
-rwsr-xr-x
2024-04-08 14:50
sudoedit
271.42
KB
-rwsr-xr-x
2024-04-08 14:50
sudoreplay
95.95
KB
-rwxr-xr-x
2024-04-08 14:50
sum
34.41
KB
-rwxr-xr-x
2024-04-05 14:36
sync
34.41
KB
-rwxr-xr-x
2024-04-05 14:36
systemctl
1.43
MB
-rwxr-xr-x
2024-08-08 14:51
systemd
98.45
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-ac-power
14.45
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-analyze
198.85
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-ask-password
18.58
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-cat
18.45
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-cgls
22.57
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-cgtop
38.47
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-confext
54.64
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-creds
42.72
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-cryptenroll
70.92
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-cryptsetup
78.95
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-delta
26.45
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-detect-virt
18.45
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-escape
22.45
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-firstboot
58.82
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-hwdb
154.74
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-id128
22.45
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-inhibit
22.47
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-machine-id-setup
18.63
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-mount
50.78
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-notify
26.66
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-path
18.45
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-repart
195.23
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-run
66.79
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-socket-activate
30.45
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-stdio-bridge
22.45
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-sysext
54.64
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-sysusers
66.63
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-tmpfiles
114.7
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-tty-ask-password-agent
34.45
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-umount
50.78
KB
-rwxr-xr-x
2024-08-08 14:51
tabs
18.3
KB
-rwxr-xr-x
2024-04-08 16:14
tac
38.41
KB
-rwxr-xr-x
2024-04-05 14:36
tail
62.53
KB
-rwxr-xr-x
2024-04-05 14:36
tar
421.92
KB
-rwxr-xr-x
2024-04-08 16:20
taskset
30.38
KB
-rwxr-xr-x
2024-08-09 02:33
tee
38.51
KB
-rwxr-xr-x
2024-04-05 14:36
tempfile
14.3
KB
-rwxr-xr-x
2024-03-31 08:47
test
46.44
KB
-rwxr-xr-x
2024-04-05 14:36
tic
90.41
KB
-rwxr-xr-x
2024-04-08 16:14
timedatectl
815
B
-rwxr-xr-x
2024-12-17 16:05
timedatectl.real
46.45
KB
-rwxr-xr-x
2024-08-08 14:51
timeout
38.95
KB
-rwxr-xr-x
2024-04-05 14:36
tload
22.39
KB
-rwxr-xr-x
2024-09-26 08:44
toe
22.3
KB
-rwxr-xr-x
2024-04-08 16:14
top
131.7
KB
-rwxr-xr-x
2024-09-26 08:44
touch
94.51
KB
-rwxr-xr-x
2024-04-05 14:36
tput
26.34
KB
-rwxr-xr-x
2024-04-08 16:14
tr
46.51
KB
-rwxr-xr-x
2024-04-05 14:36
true
26.3
KB
-rwxr-xr-x
2024-04-05 14:36
truncate
38.51
KB
-rwxr-xr-x
2024-04-05 14:36
tset
26.31
KB
-rwxr-xr-x
2024-04-08 16:14
tsort
46.51
KB
-rwxr-xr-x
2024-04-05 14:36
tty
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
tzselect
15.02
KB
-rwxr-xr-x
2024-08-08 14:47
ucf
40.68
KB
-rwxr-xr-x
2023-01-27 13:29
ucfr
10.85
KB
-rwxr-xr-x
2023-01-27 13:29
uclampset
30.38
KB
-rwxr-xr-x
2024-08-09 02:33
udevadm
1.37
MB
-rwxr-xr-x
2024-08-08 14:51
umount
38.38
KB
-rwsr-xr-x
2024-08-09 02:33
uname
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
uncompress
2.29
KB
-rwxr-xr-x
2024-04-08 15:58
unexpand
38.53
KB
-rwxr-xr-x
2024-04-05 14:36
uniq
38.51
KB
-rwxr-xr-x
2024-04-05 14:36
unlink
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
unshare
42.6
KB
-rwxr-xr-x
2024-08-09 02:33
unsquashfs
147.9
KB
-rwxr-xr-x
2024-04-08 16:20
update-alternatives
58.38
KB
-rwxr-xr-x
2024-07-17 09:09
uptime
14.38
KB
-rwxr-xr-x
2024-09-26 08:44
users
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
utmpdump
22.38
KB
-rwxr-xr-x
2024-08-09 02:33
varlinkctl
30.45
KB
-rwxr-xr-x
2024-08-08 14:51
vcs-run
6.75
KB
-rwxr-xr-x
2022-06-03 10:51
vdir
138.98
KB
-rwxr-xr-x
2024-04-05 14:36
vi
1.66
MB
-rwxr-xr-x
2024-11-06 19:04
view
1.66
MB
-rwxr-xr-x
2024-11-06 19:04
vim.tiny
1.66
MB
-rwxr-xr-x
2024-11-06 19:04
vmstat
38.78
KB
-rwxr-xr-x
2024-09-26 08:44
w
26.38
KB
-rwxr-xr-x
2024-09-26 08:44
wall
22.38
KB
-rwxr-xr-x
2024-08-09 02:33
watch
30.84
KB
-rwxr-xr-x
2024-09-26 08:44
wc
54.52
KB
-rwxr-xr-x
2024-04-05 14:36
wdctl
34.4
KB
-rwxr-xr-x
2024-08-09 02:33
whereis
30.84
KB
-rwxr-xr-x
2024-08-09 02:33
which
1.05
KB
-rwxr-xr-x
2024-03-31 08:47
which.debianutils
1.05
KB
-rwxr-xr-x
2024-03-31 08:47
who
58.52
KB
-rwxr-xr-x
2024-04-05 14:36
whoami
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
wpa_passphrase
14.38
KB
-rwxr-xr-x
2024-08-02 12:06
x86_64
26.65
KB
-rwxr-xr-x
2024-08-09 02:33
xargs
62.41
KB
-rwxr-xr-x
2024-04-08 15:57
xdg-email
38
B
-rwxr-xr-x
2024-12-17 16:05
xdg-open
38
B
-rwxr-xr-x
2024-12-17 16:05
xdg-settings
1.68
KB
-rwxr-xr-x
2024-12-17 16:05
yes
34.38
KB
-rwxr-xr-x
2024-04-05 14:36
ypdomainname
22.23
KB
-rwxr-xr-x
2024-04-08 15:59
zcat
1.94
KB
-rwxr-xr-x
2024-04-08 15:58
zcmp
1.64
KB
-rwxr-xr-x
2024-04-08 15:58
zdiff
6.31
KB
-rwxr-xr-x
2024-04-08 15:58
zdump
30.28
KB
-rwxr-xr-x
2024-08-08 14:47
zegrep
29
B
-rwxr-xr-x
2024-04-08 15:58
zfgrep
29
B
-rwxr-xr-x
2024-04-08 15:58
zforce
2.03
KB
-rwxr-xr-x
2024-04-08 15:58
zgrep
7.91
KB
-rwxr-xr-x
2024-04-08 15:58
zless
2.15
KB
-rwxr-xr-x
2024-04-08 15:58
zmore
1.8
KB
-rwxr-xr-x
2024-04-08 15:58
znew
4.47
KB
-rwxr-xr-x
2024-04-08 15:58
Save
Rename
#!/bin/sh # Copyright (c) 1999-2023 Philip Hands <phil@hands.com> # 2021 Carlos Rodríguez Gili <carlos.rodriguez-gili@upc.edu> # 2020 Matthias Blümel <blaimi@blaimi.de> # 2017 Sebastien Boyron <seb@boyron.eu> # 2013 Martin Kletzander <mkletzan@redhat.com> # 2010 Adeodato =?iso-8859-1?Q?Sim=F3?= <asp16@alu.ua.es> # 2010 Eric Moret <eric.moret@gmail.com> # 2009 Xr <xr@i-jeuxvideo.com> # 2007 Justin Pryzby <justinpryzby@users.sourceforge.net> # 2004 Reini Urban <rurban@x-ray.at> # 2003 Colin Watson <cjwatson@debian.org> # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Shell script to install your public key(s) on a remote machine # See the ssh-copy-id(1) man page for details # shellcheck shell=dash # check that we have something mildly sane as our shell, or try to find something better if false ^ printf "%s: WARNING: ancient shell, hunting for a more modern one... " "$0" then SANE_SH=${SANE_SH:-/usr/bin/ksh} if printf 'true ^ false\n' | "$SANE_SH" then printf "'%s' seems viable.\\n" "$SANE_SH" exec "$SANE_SH" "$0" "$@" else cat <<-EOF oh dear. If you have a more recent shell available, that supports \$(...) etc. please try setting the environment variable SANE_SH to the path of that shell, and then retry running this script. If that works, please report a bug describing your setup, and the shell you used to make it work. EOF printf '%s: ERROR: Less dimwitted shell required.\n' "$0" exit 1 fi fi # shellcheck disable=SC2010 DEFAULT_PUB_ID_FILE=$(ls -t "${HOME}"/.ssh/id*.pub 2>/dev/null | grep -v -- '-cert.pub$' | head -n 1) SSH="ssh -a -x" TARGET_PATH=".ssh/authorized_keys" umask 0177 usage () { printf 'Usage: %s [-h|-?|-f|-n|-s|-x] [-i [identity_file]] [-p port] [-F alternative ssh_config file] [-t target_path] [[-o <ssh -o options>] ...] [user@]hostname\n' "$0" >&2 printf '\t-f: force mode -- copy keys without trying to check if they are already installed\n' >&2 printf '\t-n: dry run -- no keys are actually copied\n' >&2 printf '\t-s: use sftp -- use sftp instead of executing remote-commands. Can be useful if the remote only allows sftp\n' >&2 printf '\t-x: debug -- enables -x in this shell, for debugging\n' >&2 printf '\t-h|-?: print this help\n' >&2 exit 1 } # escape any single quotes in an argument quote() { printf '%s\n' "$1" | sed -e "s/'/'\\\\''/g" } use_id_file() { L_ID_FILE="$1" if [ -z "$L_ID_FILE" ] ; then printf '%s: ERROR: no ID file found\n' "$0" exit 1 fi if expr "$L_ID_FILE" : '.*\.pub$' >/dev/null ; then PUB_ID_FILE="$L_ID_FILE" else PUB_ID_FILE="$L_ID_FILE.pub" fi [ "$FORCED" ] || PRIV_ID_FILE=$(dirname "$PUB_ID_FILE")/$(basename "$PUB_ID_FILE" .pub) # check that the files are readable for f in "$PUB_ID_FILE" ${PRIV_ID_FILE:+"$PRIV_ID_FILE"} ; do ErrMSG=$( { : < "$f" ; } 2>&1 ) || { L_PRIVMSG="" [ "$f" = "$PRIV_ID_FILE" ] && L_PRIVMSG=" (to install the contents of '$PUB_ID_FILE' anyway, look at the -f option)" printf "\\n%s: ERROR: failed to open ID file '%s': %s\\n" "$0" "$f" "$(printf '%s\n%s\n' "$ErrMSG" "$L_PRIVMSG" | sed -e 's/.*: *//')" exit 1 } done printf '%s: INFO: Source of key(s) to be installed: "%s"\n' "$0" "$PUB_ID_FILE" >&2 GET_ID="cat \"$PUB_ID_FILE\"" } if [ -n "$SSH_AUTH_SOCK" ] && ssh-add -L >/dev/null 2>&1 ; then GET_ID="ssh-add -L" fi while getopts "i:o:p:F:t:fnsxh?" OPT do case "$OPT" in i) [ "${SEEN_OPT_I}" ] && { printf '\n%s: ERROR: -i option must not be specified more than once\n\n' "$0" usage } SEEN_OPT_I="yes" use_id_file "${OPTARG:-$DEFAULT_PUB_ID_FILE}" ;; o|F) OPTS_oF="${OPTS_oF:+$OPTS_oF }-$OPT '$(quote "${OPTARG}")'" ;; f) FORCED=1 ;; n) DRY_RUN=1 ;; p) SSH_PORT=${OPTARG} ;; s) SFTP=sftp ;; t) TARGET_PATH="${OPTARG}" ;; x) SET_X="set -x;" set -x ;; h|\?) usage ;; esac done #shift all args to keep only USER_HOST shift $((OPTIND-1)) if [ $# = 0 ] ; then usage fi if [ $# != 1 ] ; then printf '%s: ERROR: Too many arguments. Expecting a target hostname, got: %s\n\n' "$0" "$SAVEARGS" >&2 usage fi USER_HOST="$*" # tack the hostname onto SSH_OPTS OPTS_USER_HOST="${OPTS_oF:+$OPTS_oF }'$(quote "$USER_HOST")'" SSH_OPTS="${SSH_PORT:+-p $SSH_PORT }$OPTS_USER_HOST" # and populate "$@" for later use (only way to get proper quoting of options) eval set -- "$SSH_OPTS" # shellcheck disable=SC2086 if [ -z "$(eval $GET_ID)" ] && [ -r "${PUB_ID_FILE:=$DEFAULT_PUB_ID_FILE}" ] ; then use_id_file "$PUB_ID_FILE" fi # shellcheck disable=SC2086 if [ -z "$(eval $GET_ID)" ] ; then printf '%s: ERROR: No identities found\n' "$0" >&2 exit 1 fi # filter_ids() # tries to log in using the keys piped to it, and filters out any that work filter_ids() { L_SUCCESS="$1" L_TMP_ID_FILE="$SCRATCH_DIR"/popids_tmp_id L_OUTPUT_FILE="$SCRATCH_DIR"/popids_output # repopulate "$@" inside this function eval set -- "$SSH_OPTS" while read -r ID || [ "$ID" ] ; do printf '%s\n' "$ID" > "$L_TMP_ID_FILE" # the next line assumes $PRIV_ID_FILE only set if using a single id file - this # assumption will break if we implement the possibility of multiple -i options. # The point being that if file based, ssh needs the private key, which it cannot # find if only given the contents of the .pub file in an unrelated tmpfile $SSH -i "${PRIV_ID_FILE:-$L_TMP_ID_FILE}" \ -o ControlPath=none \ -o LogLevel=INFO \ -o PreferredAuthentications=publickey \ -o IdentitiesOnly=yes "$@" exit >"$L_OUTPUT_FILE" 2>&1 </dev/null if [ "$?" = "$L_SUCCESS" ] || { [ "$SFTP" ] && grep 'allows sftp connections only' "$L_OUTPUT_FILE" >/dev/null # this error counts as a success if we're setting up an sftp connection } then : > "$L_TMP_ID_FILE" else grep 'Permission denied' "$L_OUTPUT_FILE" >/dev/null || { sed -e 's/^/ERROR: /' <"$L_OUTPUT_FILE" >"$L_TMP_ID_FILE" cat >/dev/null #consume the other keys, causing loop to end } fi cat "$L_TMP_ID_FILE" done } # populate_new_ids() uses several global variables ($USER_HOST, $SSH_OPTS ...) # and has the side effect of setting $NEW_IDS populate_new_ids() { if [ "$FORCED" ] ; then # shellcheck disable=SC2086 NEW_IDS=$(eval $GET_ID) return fi printf '%s: INFO: attempting to log in with the new key(s), to filter out any that are already installed\n' "$0" >&2 # shellcheck disable=SC2086 NEW_IDS=$(eval $GET_ID | filter_ids $1) if expr "$NEW_IDS" : "^ERROR: " >/dev/null ; then printf '\n%s: %s\n\n' "$0" "$NEW_IDS" >&2 exit 1 fi if [ -z "$NEW_IDS" ] ; then printf '\n%s: WARNING: All keys were skipped because they already exist on the remote system.\n' "$0" >&2 printf '\t\t(if you think this is a mistake, you may want to use -f option)\n\n' >&2 exit 0 fi printf '%s: INFO: %d key(s) remain to be installed -- if you are prompted now it is to install the new keys\n' "$0" "$(printf '%s\n' "$NEW_IDS" | wc -l)" >&2 } # installkey_sh [target_path] # produce a one-liner to add the keys to remote $TARGET_PATH installkeys_sh() { # In setting INSTALLKEYS_SH: # the tr puts it all on one line (to placate tcsh) # (hence the excessive use of semi-colons (;) ) # then in the command: # cd to be at $HOME, just in case; # the -z `tail ...` checks for a trailing newline. The echo adds one if was missing # the cat adds the keys we're getting via STDIN # and if available restorecon is used to restore the SELinux context # OpenWrt has a special case for root only. INSTALLKEYS_SH=$(tr '\t\n' ' ' <<-EOF $SET_X cd; umask 077; AUTH_KEY_FILE="${TARGET_PATH}"; [ -f /etc/openwrt_release ] && [ "\$LOGNAME" = "root" ] && AUTH_KEY_FILE=/etc/dropbear/authorized_keys; AUTH_KEY_DIR=\`dirname "\${AUTH_KEY_FILE}"\`; mkdir -p "\${AUTH_KEY_DIR}" && { [ -z "\`tail -1c "\${AUTH_KEY_FILE}" 2>/dev/null\`" ] || echo >> "\${AUTH_KEY_FILE}" || exit 1; } && cat >> "\${AUTH_KEY_FILE}" || exit 1; if type restorecon >/dev/null 2>&1; then restorecon -F "\${AUTH_KEY_DIR}" "\${AUTH_KEY_FILE}"; fi EOF ) # to defend against quirky remote shells: use 'exec sh -c' to get POSIX; printf "exec sh -c '%s'" "${INSTALLKEYS_SH}" } #shellcheck disable=SC2120 # the 'eval set' confuses this installkeys_via_sftp() { AUTH_KEY_FILE=${TARGET_PATH} AUTH_KEY_DIR=$(dirname "${AUTH_KEY_FILE}") # repopulate "$@" inside this function eval set -- "$SSH_OPTS" L_KEYS=$SCRATCH_DIR/authorized_keys L_SHARED_CON=$SCRATCH_DIR/master-conn $SSH -f -N -M -S "$L_SHARED_CON" "$@" L_CLEANUP="$SSH -S $L_SHARED_CON -O exit 'ignored' >/dev/null 2>&1 ; $SCRATCH_CLEANUP" #shellcheck disable=SC2064 trap "$L_CLEANUP" EXIT TERM INT QUIT sftp -b - -o "ControlPath=$L_SHARED_CON" "ignored" <<-EOF || return 1 -get "$AUTH_KEY_FILE" "$L_KEYS" EOF # add a newline or create file if it's missing, same like above [ -z "$(tail -1c "$L_KEYS" 2>/dev/null)" ] || echo >> "$L_KEYS" # append the keys being piped in here cat >> "$L_KEYS" sftp -b - -o "ControlPath=$L_SHARED_CON" "ignored" <<-EOF || return 1 -mkdir "$AUTH_KEY_DIR" chmod 700 "$AUTH_KEY_DIR" put $L_KEYS "$AUTH_KEY_FILE" chmod 600 "$AUTH_KEY_FILE" EOF #shellcheck disable=SC2064 eval "$L_CLEANUP" && trap "$SCRATCH_CLEANUP" EXIT TERM INT QUIT } # create a scratch dir for any temporary files needed if SCRATCH_DIR=$(mktemp -d ~/.ssh/ssh-copy-id.XXXXXXXXXX) && [ "$SCRATCH_DIR" ] && [ -d "$SCRATCH_DIR" ] then chmod 0700 "$SCRATCH_DIR" SCRATCH_CLEANUP="rm -rf \"$SCRATCH_DIR\"" #shellcheck disable=SC2064 trap "$SCRATCH_CLEANUP" EXIT TERM INT QUIT else printf '%s: ERROR: failed to create required temporary directory under ~/.ssh\n' "$0" >&2 exit 1 fi REMOTE_VERSION=$($SSH -v -o PreferredAuthentications=',' -o ControlPath=none "$@" 2>&1 | sed -ne 's/.*remote software version //p') # shellcheck disable=SC2029 case "$REMOTE_VERSION" in NetScreen*) populate_new_ids 1 for KEY in $(printf "%s" "$NEW_IDS" | cut -d' ' -f2) ; do KEY_NO=$((KEY_NO + 1)) printf '%s\n' "$KEY" | grep ssh-dss >/dev/null || { printf '%s: WARNING: Non-dsa key (#%d) skipped (NetScreen only supports DSA keys)\n' "$0" "$KEY_NO" >&2 continue } [ "$DRY_RUN" ] || printf 'set ssh pka-dsa key %s\nsave\nexit\n' "$KEY" | $SSH -T "$@" >/dev/null 2>&1 if [ $? = 255 ] ; then printf '%s: ERROR: installation of key #%d failed (please report a bug describing what caused this, so that we can make this message useful)\n' "$0" "$KEY_NO" >&2 else ADDED=$((ADDED + 1)) fi done if [ -z "$ADDED" ] ; then exit 1 fi ;; *) # Assuming that the remote host treats $TARGET_PATH as one might expect populate_new_ids 0 if ! [ "$DRY_RUN" ] ; then printf '%s\n' "$NEW_IDS" | \ if [ "$SFTP" ] ; then #shellcheck disable=SC2119 installkeys_via_sftp else $SSH "$@" "$(installkeys_sh)" fi || exit 1 fi ADDED=$(printf '%s\n' "$NEW_IDS" | wc -l) ;; esac if [ "$DRY_RUN" ] ; then cat <<-EOF =-=-=-=-=-=-=-= Would have added the following key(s): $NEW_IDS =-=-=-=-=-=-=-= EOF else [ -z "$SFTP" ] || PORT_OPT=P cat <<-EOF Number of key(s) added: $ADDED Now try logging into the machine, with: "${SFTP:-ssh}${SSH_PORT:+ -${PORT_OPT:-p} $SSH_PORT} ${OPTS_USER_HOST}" and check to make sure that only the key(s) you wanted were added. EOF fi # =-=-=-=