Linux tsuru-no-tsurugi 5.15.0-186-generic #196-Ubuntu SMP Sat Jun 20 16:09:34 UTC 2026 x86_64
Apache/2.4.52 (Ubuntu)
Server IP : 192.168.0.18 & Your IP : 216.73.216.68
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
snap /
core22 /
2411 /
usr /
bin /
Delete
Unzip
Name
Size
Permission
Date
Action
[
50.44
KB
-rwxr-xr-x
2024-02-08 12:46
aa-enabled
34.52
KB
-rwxr-xr-x
2025-08-15 21:17
aa-exec
34.52
KB
-rwxr-xr-x
2025-08-15 21:17
aa-features-abi
30.52
KB
-rwxr-xr-x
2025-08-15 21:17
addpart
14.38
KB
-rwxr-xr-x
2024-04-10 00:32
arch
30.51
KB
-rwxr-xr-x
2024-02-08 12:46
awk
154.79
KB
-rwxr-xr-x
2022-01-24 06:57
b2sum
50.52
KB
-rwxr-xr-x
2024-02-08 12:46
base32
34.51
KB
-rwxr-xr-x
2024-02-08 12:46
base64
34.51
KB
-rwxr-xr-x
2024-02-08 12:46
basename
34.51
KB
-rwxr-xr-x
2024-02-08 12:46
basenc
46.51
KB
-rwxr-xr-x
2024-02-08 12:46
bash
1.33
MB
-rwxr-xr-x
2024-03-14 20:31
bashbug
6.66
KB
-rwxr-xr-x
2024-03-14 20:31
bootctl
70.49
KB
-rwxr-xr-x
2025-08-27 00:23
bunzip2
38.38
KB
-rwxr-xr-x
2022-03-23 18:45
busctl
90.49
KB
-rwxr-xr-x
2025-08-27 00:23
bzcat
38.38
KB
-rwxr-xr-x
2022-03-23 18:45
bzcmp
2.17
KB
-rwxr-xr-x
2022-03-23 18:45
bzdiff
2.17
KB
-rwxr-xr-x
2022-03-23 18:45
bzegrep
3.69
KB
-rwxr-xr-x
2022-03-23 18:45
bzexe
4.78
KB
-rwxr-xr-x
2021-11-27 21:25
bzfgrep
3.69
KB
-rwxr-xr-x
2022-03-23 18:45
bzgrep
3.69
KB
-rwxr-xr-x
2022-03-23 18:45
bzip2
38.38
KB
-rwxr-xr-x
2022-03-23 18:45
bzip2recover
14.3
KB
-rwxr-xr-x
2022-03-23 18:45
bzless
1.27
KB
-rwxr-xr-x
2022-03-23 18:45
bzmore
1.27
KB
-rwxr-xr-x
2022-03-23 18:45
c_rehash
6.8
KB
-rwxr-xr-x
2026-01-26 21:32
captoinfo
86.41
KB
-rwxr-xr-x
2023-05-17 03:45
cat
34.46
KB
-rwxr-xr-x
2024-02-08 12:46
chage
70.49
KB
-rwxr-sr-x
2024-02-06 21:54
chardet
965
B
-rwxr-xr-x
2020-12-31 01:42
chardetect
965
B
-rwxr-xr-x
2020-12-31 01:42
chattr
14.31
KB
-rwxr-xr-x
2023-10-09 10:50
chcon
58.51
KB
-rwxr-xr-x
2024-02-08 12:46
chfn
71.01
KB
-rwsr-xr-x
2024-02-06 21:54
chgrp
54.51
KB
-rwxr-xr-x
2024-02-08 12:46
chmod
54.51
KB
-rwxr-xr-x
2024-02-08 12:46
choom
22.38
KB
-rwxr-xr-x
2024-04-10 00:32
chown
58.51
KB
-rwxr-xr-x
2024-02-08 12:46
chrt
26.38
KB
-rwxr-xr-x
2024-04-10 00:32
chsh
43.76
KB
-rwsr-xr-x
2024-02-06 21:54
cksum
34.41
KB
-rwxr-xr-x
2024-02-08 12:46
clear
14.31
KB
-rwxr-xr-x
2023-05-17 03:45
clear_console
14.23
KB
-rwxr-xr-x
2024-03-14 20:31
cloud-id
966
B
-rwxr-xr-x
2025-11-16 03:11
cloud-init
970
B
-rwxr-xr-x
2025-11-16 03:11
cloud-init-per
2.06
KB
-rwxr-xr-x
2025-09-26 20:09
cmp
42.39
KB
-rwxr-xr-x
2022-03-23 22:50
comm
34.52
KB
-rwxr-xr-x
2024-02-08 12:46
console-conf
982
B
-rwxr-xr-x
2020-04-20 23:31
core-sshd-host-keygen
1.49
KB
-rwxr-xr-x
2026-02-25 12:57
cp
138.51
KB
-rwxr-xr-x
2024-02-08 12:46
csplit
106.51
KB
-rwxr-xr-x
2024-02-08 12:46
ctstat
22.66
KB
-rwxr-xr-x
2022-03-24 20:56
cut
38.51
KB
-rwxr-xr-x
2024-02-08 12:46
cvtsudoers
296.4
KB
-rwxr-xr-x
2025-06-25 21:48
dash
122.74
KB
-rwxr-xr-x
2022-03-23 22:49
date
102.51
KB
-rwxr-xr-x
2024-02-08 12:46
dbus-cleanup-sockets
14.29
KB
-rwxr-xr-x
2022-10-25 22:15
dbus-daemon
227.32
KB
-rwxr-xr-x
2022-10-25 22:15
dbus-monitor
26.29
KB
-rwxr-xr-x
2022-10-25 22:15
dbus-run-session
14.29
KB
-rwxr-xr-x
2022-10-25 22:15
dbus-send
26.29
KB
-rwxr-xr-x
2022-10-25 22:15
dbus-update-activation-environment
14.29
KB
-rwxr-xr-x
2022-10-25 22:15
dbus-uuidgen
14.29
KB
-rwxr-xr-x
2022-10-25 22:15
dd
66.52
KB
-rwxr-xr-x
2024-02-08 12:46
delpart
14.38
KB
-rwxr-xr-x
2024-04-10 00:32
df
83.08
KB
-rwxr-xr-x
2024-02-08 12:46
dh_bash-completion
4.31
KB
-rwxr-xr-x
2021-11-12 00:41
diff
130.55
KB
-rwxr-xr-x
2022-03-23 22:50
diff3
54.52
KB
-rwxr-xr-x
2022-03-23 22:50
dir
134.98
KB
-rwxr-xr-x
2024-02-08 12:46
dircolors
38.52
KB
-rwxr-xr-x
2024-02-08 12:46
dirname
30.38
KB
-rwxr-xr-x
2024-02-08 12:46
dmesg
70.61
KB
-rwxr-xr-x
2024-04-10 00:32
dnsdomainname
22.23
KB
-rwxr-xr-x
2022-03-23 22:57
domainname
22.23
KB
-rwxr-xr-x
2022-03-23 22:57
dpkg-deb
134.49
KB
-rwxr-xr-x
2025-09-10 05:09
dpkg-realpath
4.09
KB
-rwxr-xr-x
2025-09-10 05:09
du
146.51
KB
-rwxr-xr-x
2024-02-08 12:46
ec2metadata
8.38
KB
-rwxr-xr-x
2021-08-05 18:58
echo
34.3
KB
-rwxr-xr-x
2024-02-08 12:46
editor
1.45
MB
-rwxr-xr-x
2025-04-02 21:39
egrep
28
B
-rwxr-xr-x
2022-03-23 22:56
env
42.95
KB
-rwxr-xr-x
2024-02-08 12:46
ex
1.45
MB
-rwxr-xr-x
2025-04-02 21:39
expand
34.53
KB
-rwxr-xr-x
2024-02-08 12:46
expiry
22.59
KB
-rwxr-sr-x
2024-02-06 21:54
expr
102.41
KB
-rwxr-xr-x
2024-02-08 12:46
factor
70.51
KB
-rwxr-xr-x
2024-02-08 12:46
faillog
22.59
KB
-rwxr-xr-x
2024-02-06 21:54
fallocate
22.38
KB
-rwxr-xr-x
2024-04-10 00:32
false
26.3
KB
-rwxr-xr-x
2024-02-08 12:46
fgrep
28
B
-rwxr-xr-x
2022-03-23 22:56
finalrd
2.06
KB
-rwxr-xr-x
2022-02-17 01:56
fincore
22.42
KB
-rwxr-xr-x
2024-04-10 00:32
find
275.48
KB
-rwxr-xr-x
2022-03-23 22:52
findmnt
63.61
KB
-rwxr-xr-x
2024-04-10 00:32
flock
22.48
KB
-rwxr-xr-x
2024-04-10 00:32
fmt
38.51
KB
-rwxr-xr-x
2024-02-08 12:46
fold
34.51
KB
-rwxr-xr-x
2024-02-08 12:46
free
26.23
KB
-rwxr-xr-x
2023-10-31 20:36
gdbserver
564.73
KB
-rwxr-xr-x
2024-06-13 10:58
getconf
34.29
KB
-rwxr-xr-x
2026-01-30 17:20
getent
38.65
KB
-rwxr-xr-x
2026-01-30 17:20
getopt
22.38
KB
-rwxr-xr-x
2024-04-10 00:32
gpasswd
70.38
KB
-rwsr-xr-x
2024-02-06 21:54
gpgv
271.04
KB
-rwxr-xr-x
2026-01-06 07:14
grep
178.45
KB
-rwxr-xr-x
2022-03-23 22:56
groups
34.51
KB
-rwxr-xr-x
2024-02-08 12:46
growpart
26.22
KB
-rwxr-xr-x
2021-08-05 18:58
gunzip
2.29
KB
-rwxr-xr-x
2022-09-05 22:33
gzexe
6.3
KB
-rwxr-xr-x
2022-09-05 22:33
gzip
91.23
KB
-rwxr-xr-x
2022-09-05 22:33
hardlink
34.43
KB
-rwxr-xr-x
2024-04-10 00:32
head
42.51
KB
-rwxr-xr-x
2024-02-08 12:46
helpztags
2.46
KB
-rwxr-xr-x
2024-08-27 14:29
hostid
30.51
KB
-rwxr-xr-x
2024-02-08 12:46
hostname
22.23
KB
-rwxr-xr-x
2022-03-23 22:57
hostnamectl
30.38
KB
-rwxr-xr-x
2025-08-27 00:23
i386
26.65
KB
-rwxr-xr-x
2024-04-10 00:32
iconv
66.41
KB
-rwxr-xr-x
2026-01-30 17:20
id
38.51
KB
-rwxr-xr-x
2024-02-08 12:46
infocmp
62.38
KB
-rwxr-xr-x
2023-05-17 03:45
infotocap
86.41
KB
-rwxr-xr-x
2023-05-17 03:45
install
142.52
KB
-rwxr-xr-x
2024-02-08 12:46
ionice
18.38
KB
-rwxr-xr-x
2024-04-10 00:32
ip
702.05
KB
-rwxr-xr-x
2022-03-24 20:56
ipcmk
22.45
KB
-rwxr-xr-x
2024-04-10 00:32
ipcrm
18.38
KB
-rwxr-xr-x
2024-04-10 00:32
ipcs
38.38
KB
-rwxr-xr-x
2024-04-10 00:32
iptables-xml
96.95
KB
-rwxr-xr-x
2024-01-17 06:14
ischroot
14.2
KB
-rwxr-xr-x
2022-03-23 22:49
join
46.55
KB
-rwxr-xr-x
2024-02-08 12:46
journalctl
78.39
KB
-rwxr-xr-x
2025-08-27 00:23
json-patch-jsondiff
1004
B
-rwxr-xr-x
2021-09-29 19:31
jsondiff
1004
B
-rwxr-xr-x
2021-09-29 19:31
jsonpatch
3.77
KB
-rwxr-xr-x
2021-09-29 19:31
jsonpointer
1.79
KB
-rwxr-xr-x
2020-01-24 12:25
jsonschema
397
B
-rwxr-xr-x
2020-01-24 03:44
kernel-install
4.79
KB
-rwxr-xr-x
2022-03-11 21:48
kill
30.23
KB
-rwxr-xr-x
2023-10-31 20:36
kmod
166.36
KB
-rwxr-xr-x
2021-08-17 18:19
kmodsign
18.45
KB
-rwxr-xr-x
2021-11-06 02:32
last
34.38
KB
-rwxr-xr-x
2024-04-10 00:32
lastb
34.38
KB
-rwxr-xr-x
2024-04-10 00:32
lastlog
27.63
KB
-rwxr-xr-x
2024-02-06 21:54
lcf
7.6
KB
-rwxr-xr-x
2020-06-16 14:37
ldd
5.32
KB
-rwxr-xr-x
2026-01-30 17:20
less
194.38
KB
-rwxr-xr-x
2024-04-28 05:32
lessecho
14.31
KB
-rwxr-xr-x
2024-04-28 05:32
lessfile
8.83
KB
-rwxr-xr-x
2021-12-29 04:39
lesskey
23.7
KB
-rwxr-xr-x
2024-04-28 05:32
lesspipe
8.83
KB
-rwxr-xr-x
2021-12-29 04:39
link
30.51
KB
-rwxr-xr-x
2024-02-08 12:46
linux32
26.65
KB
-rwxr-xr-x
2024-04-10 00:32
linux64
26.65
KB
-rwxr-xr-x
2024-04-10 00:32
ln
58.51
KB
-rwxr-xr-x
2024-02-08 12:46
lnstat
22.66
KB
-rwxr-xr-x
2022-03-24 20:56
locale
57.56
KB
-rwxr-xr-x
2026-01-30 17:20
locale-check
14.15
KB
-rwxr-xr-x
2024-09-10 20:18
localectl
26.37
KB
-rwxr-xr-x
2025-08-27 00:23
localedef
326.96
KB
-rwxr-xr-x
2026-01-30 17:20
logger
34.97
KB
-rwxr-xr-x
2024-04-10 00:32
login
51.73
KB
-rwxr-xr-x
2024-02-06 21:54
loginctl
58.48
KB
-rwxr-xr-x
2025-08-27 00:23
logname
30.51
KB
-rwxr-xr-x
2024-02-08 12:46
ls
134.98
KB
-rwxr-xr-x
2024-02-08 12:46
lsattr
14.31
KB
-rwxr-xr-x
2023-10-09 10:50
lsblk
122.38
KB
-rwxr-xr-x
2024-04-10 00:32
lscpu
98.38
KB
-rwxr-xr-x
2024-04-10 00:32
lsipc
50.38
KB
-rwxr-xr-x
2024-04-10 00:32
lslocks
30.7
KB
-rwxr-xr-x
2024-04-10 00:32
lslogins
50.38
KB
-rwxr-xr-x
2024-04-10 00:32
lsmem
34.38
KB
-rwxr-xr-x
2024-04-10 00:32
lsmod
166.36
KB
-rwxr-xr-x
2021-08-17 18:19
lsns
38.38
KB
-rwxr-xr-x
2024-04-10 00:32
man
128
B
-rwxr-xr-x
2026-02-25 12:57
mawk
154.79
KB
-rwxr-xr-x
2022-01-24 06:57
mcookie
26.45
KB
-rwxr-xr-x
2024-04-10 00:32
md5sum
42.41
KB
-rwxr-xr-x
2024-02-08 12:46
md5sum.textutils
42.41
KB
-rwxr-xr-x
2024-02-08 12:46
mesg
14.38
KB
-rwxr-xr-x
2024-04-10 00:32
mkdir
66.51
KB
-rwxr-xr-x
2024-02-08 12:46
mkfifo
38.51
KB
-rwxr-xr-x
2024-02-08 12:46
mknod
42.51
KB
-rwxr-xr-x
2024-02-08 12:46
mksquashfs
254.68
KB
-rwxr-xr-x
2022-03-25 18:58
mkswapfile
865
B
-rwxr-xr-x
2026-02-25 12:57
mktemp
38.51
KB
-rwxr-xr-x
2024-02-08 12:46
more
42.38
KB
-rwxr-xr-x
2024-04-10 00:32
mount
46.38
KB
-rwsr-xr-x
2024-04-10 00:32
mountpoint
18.38
KB
-rwxr-xr-x
2024-04-10 00:32
mv
134.52
KB
-rwxr-xr-x
2024-02-08 12:46
namei
22.38
KB
-rwxr-xr-x
2024-04-10 00:32
nawk
154.79
KB
-rwxr-xr-x
2022-01-24 06:57
nc
38.63
KB
-rwxr-xr-x
2022-02-23 20:09
nc.openbsd
38.63
KB
-rwxr-xr-x
2022-02-23 20:09
netcat
38.63
KB
-rwxr-xr-x
2022-02-23 20:09
networkctl
102.38
KB
-rwxr-xr-x
2025-08-27 00:23
newgrp
39.55
KB
-rwsr-xr-x
2024-02-06 21:54
nice
34.51
KB
-rwxr-xr-x
2024-02-08 12:46
nisdomainname
22.23
KB
-rwxr-xr-x
2022-03-23 22:57
nl
98.57
KB
-rwxr-xr-x
2024-02-08 12:46
nohup
34.41
KB
-rwxr-xr-x
2024-02-08 12:46
nproc
34.51
KB
-rwxr-xr-x
2024-02-08 12:46
nsenter
26.6
KB
-rwxr-xr-x
2024-04-10 00:32
nstat
30.38
KB
-rwxr-xr-x
2022-03-24 20:56
numfmt
54.54
KB
-rwxr-xr-x
2024-02-08 12:46
od
66.51
KB
-rwxr-xr-x
2024-02-08 12:46
openssl
977.8
KB
-rwxr-xr-x
2026-01-26 21:32
p11-kit
30.38
KB
-rwxr-xr-x
2022-03-25 01:22
p11tool
218.38
KB
-rwxr-xr-x
2026-02-11 02:28
pager
194.38
KB
-rwxr-xr-x
2024-04-28 05:32
partx
58.38
KB
-rwxr-xr-x
2024-04-10 00:32
passwd
58.57
KB
-rwsr-xr-x
2024-02-06 21:54
paste
34.41
KB
-rwxr-xr-x
2024-02-08 12:46
pathchk
34.51
KB
-rwxr-xr-x
2024-02-08 12:46
pdb3
61.74
KB
-rwxr-xr-x
2026-01-26 23:55
pdb3.10
61.74
KB
-rwxr-xr-x
2026-01-26 23:55
perl
3.63
MB
-rwxr-xr-x
2025-07-26 02:26
perl5.34.0
3.63
MB
-rwxr-xr-x
2025-07-26 02:26
pgrep
30.24
KB
-rwxr-xr-x
2023-10-31 20:36
pidof
30.38
KB
-rwxr-xr-x
2021-12-15 06:17
pidwait
30.24
KB
-rwxr-xr-x
2023-10-31 20:36
ping
74.88
KB
-rwxr-xr-x
2025-07-24 20:51
ping4
74.88
KB
-rwxr-xr-x
2025-07-24 20:51
ping6
74.88
KB
-rwxr-xr-x
2025-07-24 20:51
pinky
34.41
KB
-rwxr-xr-x
2024-02-08 12:46
pkaction
18.3
KB
-rwxr-xr-x
2022-02-26 20:11
pkcheck
22.3
KB
-rwxr-xr-x
2022-02-26 20:11
pkcs11-tool
157.02
KB
-rwxr-xr-x
2025-05-12 21:47
pkill
30.24
KB
-rwxr-xr-x
2023-10-31 20:36
pkttyagent
18.3
KB
-rwxr-xr-x
2022-02-26 20:11
pldd
22.37
KB
-rwxr-xr-x
2026-01-30 17:20
plymouth
46.3
KB
-rwxr-xr-x
2023-01-03 18:56
pmap
34.24
KB
-rwxr-xr-x
2023-10-31 20:36
pr
66.58
KB
-rwxr-xr-x
2024-02-08 12:46
printenv
30.38
KB
-rwxr-xr-x
2024-02-08 12:46
printf
50.44
KB
-rwxr-xr-x
2024-02-08 12:46
prlimit
26.89
KB
-rwxr-xr-x
2024-04-10 00:32
ps
138.45
KB
-rwxr-xr-x
2023-10-31 20:36
ptx
126.55
KB
-rwxr-xr-x
2024-02-08 12:46
pwd
34.51
KB
-rwxr-xr-x
2024-02-08 12:46
pwdx
14.23
KB
-rwxr-xr-x
2023-10-31 20:36
py3clean
7.63
KB
-rwxr-xr-x
2024-08-08 21:28
py3compile
12.88
KB
-rwxr-xr-x
2024-08-08 21:28
py3versions
11.63
KB
-rwxr-xr-x
2024-08-08 21:28
pybabel
953
B
-rwxr-xr-x
2021-05-02 00:13
pybabel-python3
953
B
-rwxr-xr-x
2021-05-02 00:13
pydoc3
79
B
-rwxr-xr-x
2026-01-26 23:55
pydoc3.10
79
B
-rwxr-xr-x
2026-01-26 23:55
pygettext3
23.67
KB
-rwxr-xr-x
2023-06-07 07:30
pygettext3.10
23.67
KB
-rwxr-xr-x
2023-06-07 07:30
pyserial-miniterm
975
B
-rwxr-xr-x
2022-04-03 18:33
pyserial-ports
969
B
-rwxr-xr-x
2022-04-03 18:33
python3
5.66
MB
-rwxr-xr-x
2026-01-26 23:55
python3.10
5.66
MB
-rwxr-xr-x
2026-01-26 23:55
rbash
1.33
MB
-rwxr-xr-x
2024-03-14 20:31
rcp
130.59
KB
-rwxr-xr-x
2025-04-11 21:05
rdma
98.52
KB
-rwxr-xr-x
2022-03-24 20:56
readlink
38.41
KB
-rwxr-xr-x
2024-02-08 12:46
realpath
38.41
KB
-rwxr-xr-x
2024-02-08 12:46
renice
14.38
KB
-rwxr-xr-x
2024-04-10 00:32
reset
26.31
KB
-rwxr-xr-x
2023-05-17 03:45
resizepart
22.38
KB
-rwxr-xr-x
2024-04-10 00:32
resolvectl
130.52
KB
-rwxr-xr-x
2025-08-27 00:23
rev
14.38
KB
-rwxr-xr-x
2024-04-10 00:32
rgrep
30
B
-rwxr-xr-x
2020-01-29 21:09
rlogin
827.04
KB
-rwxr-xr-x
2025-04-11 21:05
rm
58.51
KB
-rwxr-xr-x
2024-02-08 12:46
rmdir
42.41
KB
-rwxr-xr-x
2024-02-08 12:46
routef
208
B
-rwxr-xr-x
2022-03-24 20:56
routel
1.62
KB
-rwxr-xr-x
2022-03-24 20:56
rsh
827.04
KB
-rwxr-xr-x
2025-04-11 21:05
rtstat
22.66
KB
-rwxr-xr-x
2022-03-24 20:56
run-parts
26.54
KB
-rwxr-xr-x
2022-03-23 22:49
runcon
34.51
KB
-rwxr-xr-x
2024-02-08 12:46
rview
1.45
MB
-rwxr-xr-x
2025-04-02 21:39
savelog
10.24
KB
-rwxr-xr-x
2022-03-23 22:49
sbattach
26.54
KB
-rwxr-xr-x
2021-11-06 02:32
sbkeysync
34.74
KB
-rwxr-xr-x
2021-11-06 02:32
sbsiglist
14.6
KB
-rwxr-xr-x
2021-11-06 02:32
sbsign
34.7
KB
-rwxr-xr-x
2021-11-06 02:32
sbvarsign
22.73
KB
-rwxr-xr-x
2021-11-06 02:32
sbverify
34.61
KB
-rwxr-xr-x
2021-11-06 02:32
scp
130.59
KB
-rwxr-xr-x
2025-04-11 21:05
script
50.38
KB
-rwxr-xr-x
2024-04-10 00:32
scriptlive
42.38
KB
-rwxr-xr-x
2024-04-10 00:32
scriptreplay
34.38
KB
-rwxr-xr-x
2024-04-10 00:32
sdiff
46.39
KB
-rwxr-xr-x
2022-03-23 22:50
sed
110.57
KB
-rwxr-xr-x
2022-03-25 18:51
select-editor
2.39
KB
-rwxr-xr-x
2021-08-30 02:44
sensible-browser
1.26
KB
-rwxr-xr-x
2021-08-30 02:44
sensible-editor
1.24
KB
-rwxr-xr-x
2021-08-30 02:44
sensible-pager
565
B
-rwxr-xr-x
2021-08-30 02:44
seq
46.51
KB
-rwxr-xr-x
2024-02-08 12:46
setarch
26.65
KB
-rwxr-xr-x
2024-04-10 00:32
setpriv
38.38
KB
-rwxr-xr-x
2024-04-10 00:32
setsid
14.38
KB
-rwxr-xr-x
2024-04-10 00:32
setterm
34.38
KB
-rwxr-xr-x
2024-04-10 00:32
sftp
142.66
KB
-rwxr-xr-x
2025-04-11 21:05
sg
39.55
KB
-rwsr-xr-x
2024-02-06 21:54
sh
122.74
KB
-rwxr-xr-x
2022-03-23 22:49
sha1sum
42.41
KB
-rwxr-xr-x
2024-02-08 12:46
sha224sum
50.41
KB
-rwxr-xr-x
2024-02-08 12:46
sha256sum
50.41
KB
-rwxr-xr-x
2024-02-08 12:46
sha384sum
58.41
KB
-rwxr-xr-x
2024-02-08 12:46
sha512sum
58.41
KB
-rwxr-xr-x
2024-02-08 12:46
shred
50.51
KB
-rwxr-xr-x
2024-02-08 12:46
shuf
46.51
KB
-rwxr-xr-x
2024-02-08 12:46
skill
30.23
KB
-rwxr-xr-x
2023-10-31 20:36
slabtop
22.23
KB
-rwxr-xr-x
2023-10-31 20:36
sleep
34.51
KB
-rwxr-xr-x
2024-02-08 12:46
slogin
827.04
KB
-rwxr-xr-x
2025-04-11 21:05
snap
22.43
MB
-rwxr-xr-x
2026-05-30 15:12
snice
30.23
KB
-rwxr-xr-x
2023-10-31 20:36
sort
98.8
KB
-rwxr-xr-x
2024-02-08 12:46
splash-client
404
B
-rwxr-xr-x
2026-02-25 12:57
split
50.97
KB
-rwxr-xr-x
2024-02-08 12:46
sqfscat
131.9
KB
-rwxr-xr-x
2022-03-25 18:58
sqfstar
254.68
KB
-rwxr-xr-x
2022-03-25 18:58
ss
125.07
KB
-rwxr-xr-x
2022-03-24 20:56
ssh
827.04
KB
-rwxr-xr-x
2025-04-11 21:05
ssh-add
166.42
KB
-rwxr-xr-x
2025-04-11 21:05
ssh-agent
286.43
KB
-rwxr-sr-x
2025-04-11 21:05
ssh-argv0
1.42
KB
-rwxr-xr-x
2024-07-10 19:17
ssh-copy-id
12.38
KB
-rwxr-xr-x
2022-02-23 20:31
ssh-keygen
446.44
KB
-rwxr-xr-x
2025-04-11 21:05
ssh-keyscan
190.44
KB
-rwxr-xr-x
2025-04-11 21:05
stat
78.52
KB
-rwxr-xr-x
2024-02-08 12:46
stdbuf
42.51
KB
-rwxr-xr-x
2024-02-08 12:46
stty
74.51
KB
-rwxr-xr-x
2024-02-08 12:46
su
54.38
KB
-rwsr-xr-x
2024-04-10 00:32
sudo
226.97
KB
-rwsr-xr-x
2025-06-25 21:48
sudoedit
226.97
KB
-rwsr-xr-x
2025-06-25 21:48
sudoreplay
87.64
KB
-rwxr-xr-x
2025-06-25 21:48
sum
34.41
KB
-rwxr-xr-x
2024-02-08 12:46
sync
34.41
KB
-rwxr-xr-x
2024-02-08 12:46
systemctl
1.06
MB
-rwxr-xr-x
2025-08-27 00:23
systemd
1.76
MB
-rwxr-xr-x
2026-06-06 00:40
systemd-analyze
1.73
MB
-rwxr-xr-x
2025-08-27 00:23
systemd-ask-password
18.48
KB
-rwxr-xr-x
2025-08-27 00:23
systemd-cat
18.38
KB
-rwxr-xr-x
2025-08-27 00:23
systemd-cgls
22.48
KB
-rwxr-xr-x
2025-08-27 00:23
systemd-cgtop
38.39
KB
-rwxr-xr-x
2025-08-27 00:23
systemd-cryptenroll
50.53
KB
-rwxr-xr-x
2025-08-27 00:23
systemd-delta
26.37
KB
-rwxr-xr-x
2025-08-27 00:23
systemd-detect-virt
18.37
KB
-rwxr-xr-x
2025-08-27 00:23
systemd-escape
22.37
KB
-rwxr-xr-x
2025-08-27 00:23
systemd-hwdb
118.66
KB
-rwxr-xr-x
2025-08-27 00:23
systemd-id128
26.37
KB
-rwxr-xr-x
2025-08-27 00:23
systemd-inhibit
22.39
KB
-rwxr-xr-x
2025-08-27 00:23
systemd-machine-id-setup
18.48
KB
-rwxr-xr-x
2025-08-27 00:23
systemd-mount
50.59
KB
-rwxr-xr-x
2025-08-27 00:23
systemd-notify
22.38
KB
-rwxr-xr-x
2025-08-27 00:23
systemd-path
18.37
KB
-rwxr-xr-x
2025-08-27 00:23
systemd-run
62.57
KB
-rwxr-xr-x
2025-08-27 00:23
systemd-socket-activate
26.37
KB
-rwxr-xr-x
2025-08-27 00:23
systemd-stdio-bridge
22.38
KB
-rwxr-xr-x
2025-08-27 00:23
systemd-sysext
46.49
KB
-rwxr-xr-x
2025-08-27 00:23
systemd-sysusers
62.68
KB
-rwxr-xr-x
2025-08-27 00:23
systemd-tmpfiles
98.57
KB
-rwxr-xr-x
2025-08-27 00:23
systemd-tty-ask-password-agent
34.37
KB
-rwxr-xr-x
2025-08-27 00:23
systemd-umount
50.59
KB
-rwxr-xr-x
2025-08-27 00:23
tabs
18.3
KB
-rwxr-xr-x
2023-05-17 03:45
tac
98.41
KB
-rwxr-xr-x
2024-02-08 12:46
tail
66.52
KB
-rwxr-xr-x
2024-02-08 12:46
tar
505.81
KB
-rwxr-xr-x
2023-12-05 14:15
taskset
22.38
KB
-rwxr-xr-x
2024-04-10 00:32
tee
34.51
KB
-rwxr-xr-x
2024-02-08 12:46
tempfile
14.02
KB
-rwxr-xr-x
2022-03-23 22:49
test
42.44
KB
-rwxr-xr-x
2024-02-08 12:46
tic
86.41
KB
-rwxr-xr-x
2023-05-17 03:45
timedatectl
815
B
-rwxr-xr-x
2026-02-25 13:01
timedatectl.real
46.37
KB
-rwxr-xr-x
2025-08-27 00:23
timeout
38.95
KB
-rwxr-xr-x
2024-02-08 12:46
tload
18.24
KB
-rwxr-xr-x
2023-10-31 20:36
toe
22.3
KB
-rwxr-xr-x
2023-05-17 03:45
top
130.06
KB
-rwxr-xr-x
2023-10-31 20:36
touch
90.51
KB
-rwxr-xr-x
2024-02-08 12:46
tput
26.34
KB
-rwxr-xr-x
2023-05-17 03:45
tr
46.51
KB
-rwxr-xr-x
2024-02-08 12:46
true
26.3
KB
-rwxr-xr-x
2024-02-08 12:46
truncate
34.51
KB
-rwxr-xr-x
2024-02-08 12:46
tset
26.31
KB
-rwxr-xr-x
2023-05-17 03:45
tsort
46.51
KB
-rwxr-xr-x
2024-02-08 12:46
tty
30.51
KB
-rwxr-xr-x
2024-02-08 12:46
tzselect
15.02
KB
-rwxr-xr-x
2026-01-30 17:20
ucf
40.9
KB
-rwxr-xr-x
2020-06-16 14:37
ucfq
18.91
KB
-rwxr-xr-x
2020-06-16 14:37
ucfr
10.47
KB
-rwxr-xr-x
2020-06-16 14:37
uclampset
26.38
KB
-rwxr-xr-x
2024-04-10 00:32
udevadm
1.08
MB
-rwxr-xr-x
2025-08-27 00:23
umount
34.38
KB
-rwsr-xr-x
2024-04-10 00:32
uname
34.51
KB
-rwxr-xr-x
2024-02-08 12:46
uncompress
2.29
KB
-rwxr-xr-x
2022-09-05 22:33
unexpand
34.53
KB
-rwxr-xr-x
2024-02-08 12:46
uniq
42.51
KB
-rwxr-xr-x
2024-02-08 12:46
unlink
30.51
KB
-rwxr-xr-x
2024-02-08 12:46
unshare
30.6
KB
-rwxr-xr-x
2024-04-10 00:32
unsquashfs
131.9
KB
-rwxr-xr-x
2022-03-25 18:58
update-alternatives
58.24
KB
-rwxr-xr-x
2025-09-10 05:09
uptime
14.23
KB
-rwxr-xr-x
2023-10-31 20:36
users
34.51
KB
-rwxr-xr-x
2024-02-08 12:46
utmpdump
22.38
KB
-rwxr-xr-x
2024-04-10 00:32
vcs-run
6.75
KB
-rwxr-xr-x
2021-08-05 18:58
vdir
134.98
KB
-rwxr-xr-x
2024-02-08 12:46
vi
1.45
MB
-rwxr-xr-x
2025-04-02 21:39
view
1.45
MB
-rwxr-xr-x
2025-04-02 21:39
vim.tiny
1.45
MB
-rwxr-xr-x
2025-04-02 21:39
vmstat
38.24
KB
-rwxr-xr-x
2023-10-31 20:36
w
22.23
KB
-rwxr-xr-x
2023-10-31 20:36
wall
22.38
KB
-rwxr-xr-x
2024-04-10 00:32
watch
26.6
KB
-rwxr-xr-x
2023-10-31 20:36
wc
42.42
KB
-rwxr-xr-x
2024-02-08 12:46
wdctl
30.4
KB
-rwxr-xr-x
2024-04-10 00:32
whereis
30.84
KB
-rwxr-xr-x
2024-04-10 00:32
which
946
B
-rwxr-xr-x
2022-03-23 22:49
which.debianutils
946
B
-rwxr-xr-x
2022-03-23 22:49
who
50.52
KB
-rwxr-xr-x
2024-02-08 12:46
whoami
30.51
KB
-rwxr-xr-x
2024-02-08 12:46
wpa_passphrase
14.31
KB
-rwxr-xr-x
2025-07-22 08:13
x86_64
26.65
KB
-rwxr-xr-x
2024-04-10 00:32
xargs
62.41
KB
-rwxr-xr-x
2022-03-23 22:52
xdg-open
38
B
-rwxr-xr-x
2026-02-25 13:01
xdg-settings
1.68
KB
-rwxr-xr-x
2026-02-25 13:01
xxd
18.28
KB
-rwxr-xr-x
2025-04-02 21:39
yes
30.38
KB
-rwxr-xr-x
2024-02-08 12:46
ypdomainname
22.23
KB
-rwxr-xr-x
2022-03-23 22:57
zcat
1.94
KB
-rwxr-xr-x
2022-09-05 22:33
zcmp
1.64
KB
-rwxr-xr-x
2022-09-05 22:33
zdiff
5.76
KB
-rwxr-xr-x
2022-09-05 22:33
zdump
26.21
KB
-rwxr-xr-x
2026-01-30 17:20
zegrep
29
B
-rwxr-xr-x
2022-09-05 22:33
zfgrep
29
B
-rwxr-xr-x
2022-09-05 22:33
zforce
2.03
KB
-rwxr-xr-x
2022-09-05 22:33
zgrep
7.91
KB
-rwxr-xr-x
2022-09-05 22:33
zless
2.15
KB
-rwxr-xr-x
2022-09-05 22:33
zmore
1.8
KB
-rwxr-xr-x
2022-09-05 22:33
znew
4.47
KB
-rwxr-xr-x
2022-09-05 22:33
Save
Rename
#!/bin/sh # Copyright (c) 1999-2020 Philip Hands <phil@hands.com> # 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" umask 0177 usage () { printf 'Usage: %s [-h|-?|-f|-n|-s] [-i [identity_file]] [-p port] [-F alternative ssh_config file] [[-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-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:fnsh?" 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|p|F) SSH_OPTS="${SSH_OPTS:+$SSH_OPTS }-$OPT '$(quote "${OPTARG}")'" ;; f) FORCED=1 ;; n) DRY_RUN=1 ;; s) SFTP=sftp ;; 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 # drop trailing colon USER_HOST="$*" # tack the hostname onto SSH_OPTS SSH_OPTS="${SSH_OPTS:+$SSH_OPTS }'$(quote "$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 authorized_keys file # optionally takes an alternative path for authorized_keys installkeys_sh() { AUTH_KEY_FILE=${1:-.ssh/authorized_keys} AUTH_KEY_DIR=$(dirname "${AUTH_KEY_FILE}") # 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 INSTALLKEYS_SH=$(tr '\t\n' ' ' <<-EOF cd; umask 077; 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() { # 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 .ssh/authorized_keys $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 .ssh chmod 700 .ssh put $L_KEYS .ssh/authorized_keys chmod 600 .ssh/authorized_keys 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 ;; dropbear*) populate_new_ids 0 [ "$DRY_RUN" ] || printf '%s\n' "$NEW_IDS" | \ $SSH "$@" "$(installkeys_sh /etc/dropbear/authorized_keys)" \ || exit 1 ADDED=$(printf '%s\n' "$NEW_IDS" | wc -l) ;; *) # Assuming that the remote host treats ~/.ssh/authorized_keys 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 cat <<-EOF Number of key(s) added: $ADDED Now try logging into the machine, with: "${SFTP:-ssh} $SSH_OPTS" and check to make sure that only the key(s) you wanted were added. EOF fi # =-=-=-=