OXIESEC PANEL
- Current Dir:
/
/
snap
/
core20
/
2599
/
usr
/
bin
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/26/2025 10:13:33 PM
rwxr-xr-x
📄
[
58.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
aa-enabled
30.52 KB
03/06/2024 06:40:00 PM
rwxr-xr-x
📄
aa-exec
34.52 KB
03/06/2024 06:40:00 PM
rwxr-xr-x
📄
addpart
30.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
arch
38.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
awk
158.74 KB
02/16/2020 07:41:09 PM
rwxr-xr-x
📄
b2sum
58.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
base32
42.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
base64
42.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
basename
38.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
bash
1.13 MB
04/18/2022 09:14:46 AM
rwxr-xr-x
📄
bashbug
6.63 KB
04/18/2022 09:14:46 AM
rwxr-xr-x
📄
bootctl
62.34 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
bunzip2
38.23 KB
09/05/2019 03:05:14 PM
rwxr-xr-x
📄
busctl
86.34 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
bzcat
38.23 KB
09/05/2019 03:05:14 PM
rwxr-xr-x
📄
bzcmp
2.17 KB
09/05/2019 03:05:14 PM
rwxr-xr-x
📄
bzdiff
2.17 KB
09/05/2019 03:05:14 PM
rwxr-xr-x
📄
bzegrep
3.69 KB
09/05/2019 03:05:14 PM
rwxr-xr-x
📄
bzexe
4.76 KB
09/04/2019 01:22:31 PM
rwxr-xr-x
📄
bzfgrep
3.69 KB
09/05/2019 03:05:14 PM
rwxr-xr-x
📄
bzgrep
3.69 KB
09/05/2019 03:05:14 PM
rwxr-xr-x
📄
bzip2
38.23 KB
09/05/2019 03:05:14 PM
rwxr-xr-x
📄
bzip2recover
18.15 KB
09/05/2019 03:05:14 PM
rwxr-xr-x
📄
bzless
1.27 KB
09/05/2019 03:05:14 PM
rwxr-xr-x
📄
bzmore
1.27 KB
09/05/2019 03:05:14 PM
rwxr-xr-x
📄
c_rehash
6.65 KB
02/05/2025 01:26:48 PM
rwxr-xr-x
📄
captoinfo
90.41 KB
05/16/2023 06:47:48 PM
rwxr-xr-x
📄
cat
42.4 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
catchsegv
3.25 KB
01/29/2025 02:41:47 PM
rwxr-xr-x
📄
cautious-launcher
853 bytes
10/18/2019 11:05:50 PM
rwxr-xr-x
📄
chage
82.53 KB
02/06/2024 12:49:54 PM
rwxr-xr-x
📄
chardet3
389 bytes
12/17/2019 12:31:30 PM
rwxr-xr-x
📄
chardetect3
389 bytes
12/17/2019 12:31:30 PM
rwxr-xr-x
📄
chattr
14.31 KB
10/09/2023 01:56:01 AM
rwxr-xr-x
📄
chcon
70.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
chfn
83.07 KB
02/06/2024 12:49:54 PM
rwxr-xr-x
📄
chgrp
70.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
chmod
62.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
choom
50.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
chown
70.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
chrt
38.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
chsh
51.8 KB
02/06/2024 12:49:54 PM
rwxr-xr-x
📄
cksum
38.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
clear
14.31 KB
05/16/2023 06:47:48 PM
rwxr-xr-x
📄
clear_console
14.23 KB
04/18/2022 09:14:46 AM
rwxr-xr-x
📄
cloud-id
396 bytes
03/13/2025 04:28:57 PM
rwxr-xr-x
📄
cloud-init
400 bytes
03/13/2025 04:28:57 PM
rwxr-xr-x
📄
cloud-init-per
2.06 KB
01/15/2025 03:24:11 PM
rwxr-xr-x
📄
cmp
50.09 KB
04/08/2019 12:04:00 PM
rwxr-xr-x
📄
comm
42.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
compose
18.05 KB
10/18/2019 11:05:50 PM
rwxr-xr-x
📄
console-conf
406 bytes
04/20/2020 02:31:39 PM
rwxr-xr-x
📄
core-sshd-host-keygen
1.49 KB
05/26/2025 10:10:05 PM
rwxr-xr-x
📄
cp
150.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
csplit
54.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
ctstat
30.51 KB
02/13/2020 05:21:59 PM
rwxr-xr-x
📄
cut
46.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
cvtsudoers
266.7 KB
04/04/2023 11:56:28 AM
rwxr-xr-x
📄
dash
126.77 KB
07/18/2019 06:15:27 PM
rwxr-xr-x
📄
date
106.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
dbus-cleanup-sockets
14.14 KB
10/25/2022 01:09:26 PM
rwxr-xr-x
📄
dbus-daemon
243.2 KB
10/25/2022 01:09:26 PM
rwxr-xr-x
📄
dbus-monitor
30.14 KB
10/25/2022 01:09:26 PM
rwxr-xr-x
📄
dbus-run-session
14.14 KB
10/25/2022 01:09:26 PM
rwxr-xr-x
📄
dbus-send
30.14 KB
10/25/2022 01:09:26 PM
rwxr-xr-x
📄
dbus-update-activation-environment
14.14 KB
10/25/2022 01:09:26 PM
rwxr-xr-x
📄
dbus-uuidgen
14.14 KB
10/25/2022 01:09:26 PM
rwxr-xr-x
📄
dd
78.38 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
deb-systemd-helper
20.83 KB
06/21/2019 06:56:55 PM
rwxr-xr-x
📄
deb-systemd-invoke
4.33 KB
06/21/2019 06:56:55 PM
rwxr-xr-x
📄
delpart
30.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
df
90.95 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
dh_bash-completion
2.39 KB
01/26/2020 03:42:18 AM
rwxr-xr-x
📄
diff
214.34 KB
04/08/2019 12:04:00 PM
rwxr-xr-x
📄
diff3
66.21 KB
04/08/2019 12:04:00 PM
rwxr-xr-x
📄
dir
138.81 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
dircolors
46.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
dirname
38.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
dmesg
82.46 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
dnsdomainname
26.23 KB
11/07/2019 11:31:36 AM
rwxr-xr-x
📄
domainname
26.23 KB
11/07/2019 11:31:36 AM
rwxr-xr-x
📄
dpkg-deb
174.54 KB
05/25/2022 11:14:20 AM
rwxr-xr-x
📄
du
106.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
ec2metadata
7.12 KB
02/25/2020 08:41:21 PM
rwxr-xr-x
📄
echo
38.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
edit
18.05 KB
10/18/2019 11:05:50 PM
rwxr-xr-x
📄
editor
1.29 MB
04/02/2025 04:39:51 PM
rwxr-xr-x
📄
egrep
28 bytes
01/29/2020 09:31:53 AM
rwxr-xr-x
📄
env
42.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
ex
1.29 MB
04/02/2025 04:39:51 PM
rwxr-xr-x
📄
expand
42.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
expiry
30.58 KB
02/06/2024 12:49:54 PM
rwxr-xr-x
📄
expr
54.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
factor
78.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
faillog
22.59 KB
02/06/2024 12:49:54 PM
rwxr-xr-x
📄
fallocate
34.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
false
38.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
fgrep
28 bytes
01/29/2020 09:31:53 AM
rwxr-xr-x
📄
file
26.47 KB
01/16/2020 08:39:11 PM
rwxr-xr-x
📄
finalrd
2.1 KB
09/10/2020 02:53:09 PM
rwxr-xr-x
📄
fincore
34.27 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
find
312.66 KB
02/18/2020 01:05:59 AM
rwxr-xr-x
📄
findmnt
71.41 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
flock
34.3 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
fmt
46.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
fold
42.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
free
26.23 KB
10/31/2023 11:35:56 AM
rwxr-xr-x
📄
gdbserver
509.55 KB
06/13/2024 02:43:41 AM
rwxr-xr-x
📄
getconf
34.29 KB
01/29/2025 02:41:47 PM
rwxr-xr-x
📄
getent
38.65 KB
01/29/2025 02:41:47 PM
rwxr-xr-x
📄
getopt
22.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
gpasswd
86.39 KB
02/06/2024 12:49:54 PM
rwxr-xr-x
📄
gpgv
447.15 KB
03/29/2025 04:35:54 PM
rwxr-xr-x
📄
grep
194.47 KB
01/29/2020 09:31:53 AM
rwxr-xr-x
📄
groups
38.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
growpart
23.95 KB
02/25/2020 08:41:21 PM
rwxr-xr-x
📄
gunzip
2.29 KB
04/08/2022 11:05:45 AM
rwxr-xr-x
📄
gzexe
6.3 KB
04/08/2022 11:05:45 AM
rwxr-xr-x
📄
gzip
95.21 KB
04/08/2022 11:05:45 AM
rwxr-xr-x
📄
head
46.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
helpztags
2.46 KB
09/04/2024 03:09:54 AM
rwxr-xr-x
📄
hostid
38.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
hostname
26.23 KB
11/07/2019 11:31:36 AM
rwxr-xr-x
📄
hostnamectl
26.22 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
i386
26.5 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
iconv
66.41 KB
01/29/2025 02:41:47 PM
rwxr-xr-x
📄
id
46.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
infocmp
62.38 KB
05/16/2023 06:47:48 PM
rwxr-xr-x
📄
infotocap
90.41 KB
05/16/2023 06:47:48 PM
rwxr-xr-x
📄
install
154.41 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
ionice
30.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
ip
597.62 KB
02/13/2020 05:21:59 PM
rwxr-xr-x
📄
ipcmk
34.3 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
ipcrm
34.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
ipcs
66.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
iptables-xml
96.97 KB
05/09/2023 06:39:57 PM
rwxr-xr-x
📄
ischroot
14.2 KB
12/07/2019 02:13:44 AM
rwxr-xr-x
📄
join
54.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
journalctl
78.24 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
jsondiff
1004 bytes
09/05/2019 01:01:23 PM
rwxr-xr-x
📄
jsonpatch
3.58 KB
09/05/2019 01:01:23 PM
rwxr-xr-x
📄
jsonpatch-jsondiff
1004 bytes
09/05/2019 01:01:23 PM
rwxr-xr-x
📄
jsonpointer
1.79 KB
01/24/2020 03:25:15 AM
rwxr-xr-x
📄
jsonschema
397 bytes
01/23/2020 06:44:38 PM
rwxr-xr-x
📄
kernel-install
5.07 KB
04/01/2020 05:23:42 PM
rwxr-xr-x
📄
kill
30.23 KB
10/31/2023 11:35:56 AM
rwxr-xr-x
📄
kmod
170.34 KB
01/28/2022 02:49:50 PM
rwxr-xr-x
📄
kmodsign
22.29 KB
03/10/2022 07:41:04 PM
rwxr-xr-x
📄
last
50.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
lastb
50.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
lastlog
31.66 KB
02/06/2024 12:49:54 PM
rwxr-xr-x
📄
lcf
7.6 KB
12/14/2018 08:51:14 AM
rwxr-xr-x
📄
ldd
5.3 KB
01/29/2025 02:41:47 PM
rwxr-xr-x
📄
less
175.84 KB
04/28/2024 11:42:44 AM
rwxr-xr-x
📄
lessecho
14.31 KB
04/28/2024 11:42:44 AM
rwxr-xr-x
📄
lessfile
8.36 KB
09/03/2019 04:41:52 AM
rwxr-xr-x
📄
lesskey
23.72 KB
04/28/2024 11:42:44 AM
rwxr-xr-x
📄
lesspipe
8.36 KB
09/03/2019 04:41:52 AM
rwxr-xr-x
📄
link
38.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
linux32
26.5 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
linux64
26.5 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
ln
74.38 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
lnstat
30.51 KB
02/13/2020 05:21:59 PM
rwxr-xr-x
📄
locale
57.56 KB
01/29/2025 02:41:47 PM
rwxr-xr-x
📄
locale-check
14.16 KB
01/02/2024 05:12:43 PM
rwxr-xr-x
📄
localectl
26.22 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
localedef
326.96 KB
01/29/2025 02:41:47 PM
rwxr-xr-x
📄
logger
50.82 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
login
55.77 KB
02/06/2024 12:49:54 PM
rwxr-xr-x
📄
loginctl
58.34 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
logname
38.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
ls
138.81 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
lsattr
14.31 KB
10/09/2023 01:56:01 AM
rwxr-xr-x
📄
lsblk
130.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
lscpu
98.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
lsipc
94.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
lslocks
38.55 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
lslogins
66.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
lsmem
66.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
lsmod
170.34 KB
01/28/2022 02:49:50 PM
rwxr-xr-x
📄
lsns
50.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
man
128 bytes
05/26/2025 10:10:05 PM
rwxr-xr-x
📄
mawk
158.74 KB
02/16/2020 07:41:09 PM
rwxr-xr-x
📄
mcookie
34.3 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
md5sum
46.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
md5sum.textutils
46.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
mesg
14.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
miniterm
34.28 KB
02/03/2020 04:29:07 PM
rwxr-xr-x
📄
mkdir
86.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
mkfifo
66.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
mknod
70.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
mksquashfs
205.96 KB
10/12/2021 12:36:41 AM
rwxr-xr-x
📄
mkswapfile
865 bytes
05/26/2025 10:10:05 PM
rwxr-xr-x
📄
mktemp
46.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
more
42.15 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
mount
54.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
mountpoint
14.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
mv
146.38 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
namei
34.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
nawk
158.74 KB
02/16/2020 07:41:09 PM
rwxr-xr-x
📄
nc
42.64 KB
03/09/2020 06:50:15 PM
rwxr-xr-x
📄
nc.openbsd
42.64 KB
03/09/2020 06:50:15 PM
rwxr-xr-x
📄
netcat
42.64 KB
03/09/2020 06:50:15 PM
rwxr-xr-x
📄
networkctl
74.23 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
newgrp
43.73 KB
02/06/2024 12:49:54 PM
rwxr-xr-x
📄
nice
42.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
nisdomainname
26.23 KB
11/07/2019 11:31:36 AM
rwxr-xr-x
📄
nl
42.43 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
nohup
42.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
nproc
42.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
nsenter
34.43 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
nstat
78.23 KB
02/13/2020 05:21:59 PM
rwxr-xr-x
📄
numfmt
66.4 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
od
70.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
openssl
735.68 KB
02/05/2025 01:26:48 PM
rwxr-xr-x
📄
p11-kit
34.39 KB
01/04/2021 07:04:11 PM
rwxr-xr-x
📄
p11tool
355.38 KB
02/12/2025 05:32:03 PM
rwxr-xr-x
📄
pager
175.84 KB
04/28/2024 11:42:44 AM
rwxr-xr-x
📄
partx
118.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
passwd
66.61 KB
02/06/2024 12:49:54 PM
rwxr-xr-x
📄
paste
42.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
pathchk
38.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
pdb3
61.27 KB
03/18/2025 08:04:55 PM
rwxr-xr-x
📄
pdb3.8
61.27 KB
03/18/2025 08:04:55 PM
rwxr-xr-x
📄
perl
3.32 MB
11/23/2023 03:02:19 PM
rwxr-xr-x
📄
perl5.30.0
3.32 MB
11/23/2023 03:02:19 PM
rwxr-xr-x
📄
pgrep
30.24 KB
10/31/2023 11:35:56 AM
rwxr-xr-x
📄
pidof
22.08 KB
11/01/2017 09:00:29 PM
rwxr-xr-x
📄
ping
71.07 KB
09/13/2022 07:06:15 PM
rwxr-xr-x
📄
ping4
71.07 KB
09/13/2022 07:06:15 PM
rwxr-xr-x
📄
ping6
71.07 KB
09/13/2022 07:06:15 PM
rwxr-xr-x
📄
pinky
42.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
pkcs11-tool
152.77 KB
04/09/2025 03:19:18 AM
rwxr-xr-x
📄
pkill
30.24 KB
10/31/2023 11:35:56 AM
rwxr-xr-x
📄
pldd
22.37 KB
01/29/2025 02:41:47 PM
rwxr-xr-x
📄
pmap
34.24 KB
10/31/2023 11:35:56 AM
rwxr-xr-x
📄
pr
74.43 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
print
18.05 KB
10/18/2019 11:05:50 PM
rwxr-xr-x
📄
printenv
38.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
printf
58.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
prlimit
38.74 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
ps
134.46 KB
10/31/2023 11:35:56 AM
rwxr-xr-x
📄
ptx
78.4 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
pwd
42.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
pwdx
14.23 KB
10/31/2023 11:35:56 AM
rwxr-xr-x
📄
py3clean
7.63 KB
03/13/2020 12:20:20 PM
rwxr-xr-x
📄
py3compile
11.84 KB
03/13/2020 12:20:20 PM
rwxr-xr-x
📄
py3versions
11.44 KB
03/13/2020 12:20:20 PM
rwxr-xr-x
📄
pydoc3
79 bytes
03/18/2025 08:04:55 PM
rwxr-xr-x
📄
pydoc3.8
79 bytes
03/18/2025 08:04:55 PM
rwxr-xr-x
📄
pygettext3
21.03 KB
03/18/2025 08:04:55 PM
rwxr-xr-x
📄
pygettext3.8
21.03 KB
03/18/2025 08:04:55 PM
rwxr-xr-x
📄
pyjwt3
372 bytes
07/19/2022 05:41:38 AM
rwxr-xr-x
📄
python3
5.24 MB
03/18/2025 08:04:55 PM
rwxr-xr-x
📄
python3.8
5.24 MB
03/18/2025 08:04:55 PM
rwxr-xr-x
📄
rbash
1.13 MB
04/18/2022 09:14:46 AM
rwxr-xr-x
📄
rcp
114.3 KB
04/11/2025 12:16:08 PM
rwxr-xr-x
📄
rdma
130.23 KB
02/13/2020 05:21:59 PM
rwxr-xr-x
📄
readlink
50.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
realpath
50.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
rename.ul
22.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
renice
14.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
reset
30.31 KB
05/16/2023 06:47:48 PM
rwxr-xr-x
📄
resizepart
62.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
resolvectl
126.38 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
rev
14.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
rgrep
30 bytes
01/16/2020 03:27:20 PM
rwxr-xr-x
📄
rlogin
774.95 KB
04/11/2025 12:16:08 PM
rwxr-xr-x
📄
rm
70.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
rmdir
46.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
routef
208 bytes
02/13/2020 05:21:59 PM
rwxr-xr-x
📄
routel
1.62 KB
02/13/2020 05:21:59 PM
rwxr-xr-x
📄
rsh
774.95 KB
04/11/2025 12:16:08 PM
rwxr-xr-x
📄
rtstat
30.51 KB
02/13/2020 05:21:59 PM
rwxr-xr-x
📄
run-mailcap
18.05 KB
10/18/2019 11:05:50 PM
rwxr-xr-x
📄
run-parts
26.51 KB
12/07/2019 02:13:44 AM
rwxr-xr-x
📄
runcon
38.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
rview
1.29 MB
04/02/2025 04:39:51 PM
rwxr-xr-x
📄
savelog
10.24 KB
12/07/2019 02:13:44 AM
rwxr-xr-x
📄
sbattach
58.48 KB
03/10/2022 07:41:04 PM
rwxr-xr-x
📄
sbkeysync
66.7 KB
03/10/2022 07:41:04 PM
rwxr-xr-x
📄
sbsiglist
58.55 KB
03/10/2022 07:41:04 PM
rwxr-xr-x
📄
sbsign
58.55 KB
03/10/2022 07:41:04 PM
rwxr-xr-x
📄
sbvarsign
66.61 KB
03/10/2022 07:41:04 PM
rwxr-xr-x
📄
sbverify
62.48 KB
03/10/2022 07:41:04 PM
rwxr-xr-x
📄
scp
114.3 KB
04/11/2025 12:16:08 PM
rwxr-xr-x
📄
script
54.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
scriptreplay
30.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
sdiff
50.09 KB
04/08/2019 12:04:00 PM
rwxr-xr-x
📄
sed
118.45 KB
12/22/2018 02:24:04 PM
rwxr-xr-x
📄
see
18.05 KB
10/18/2019 11:05:50 PM
rwxr-xr-x
📄
select-editor
2.38 KB
11/17/2019 12:21:22 PM
rwxr-xr-x
📄
sensible-browser
1.2 KB
11/17/2019 12:21:22 PM
rwxr-xr-x
📄
sensible-editor
1.14 KB
11/17/2019 12:21:22 PM
rwxr-xr-x
📄
sensible-pager
452 bytes
11/17/2019 12:21:22 PM
rwxr-xr-x
📄
seq
50.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
setarch
26.5 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
setpriv
46.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
setsid
14.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
setterm
46.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
sftp
166.51 KB
04/11/2025 12:16:08 PM
rwxr-xr-x
📄
sg
43.73 KB
02/06/2024 12:49:54 PM
rwxr-xr-x
📄
sh
126.77 KB
07/18/2019 06:15:27 PM
rwxr-xr-x
📄
sha1sum
50.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
sha224sum
58.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
sha256sum
58.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
sha384sum
66.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
sha512sum
66.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
shred
62.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
shuf
58.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
skill
30.23 KB
10/31/2023 11:35:56 AM
rwxr-xr-x
📄
slabtop
22.23 KB
10/31/2023 11:35:56 AM
rwxr-xr-x
📄
sleep
38.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
slogin
774.95 KB
04/11/2025 12:16:08 PM
rwxr-xr-x
📄
snap
0 bytes
01/01/1970 12:00:00 AM
---------
📄
snapctl
0 bytes
01/01/1970 12:00:00 AM
---------
📄
snice
30.23 KB
10/31/2023 11:35:56 AM
rwxr-xr-x
📄
sort
114.63 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
split
58.77 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
ss
164.84 KB
02/13/2020 05:21:59 PM
rwxr-xr-x
📄
ssh
774.95 KB
04/11/2025 12:16:08 PM
rwxr-xr-x
📄
ssh-add
362.28 KB
04/11/2025 12:16:08 PM
rwxr-xr-x
📄
ssh-agent
342.29 KB
04/11/2025 12:16:08 PM
rwxr-xr-x
📄
ssh-argv0
1.42 KB
04/03/2023 10:47:13 PM
rwxr-xr-x
📄
ssh-copy-id
10.41 KB
02/14/2020 12:40:54 AM
rwxr-xr-x
📄
ssh-keygen
466.3 KB
04/11/2025 12:16:08 PM
rwxr-xr-x
📄
ssh-keyscan
454.3 KB
04/11/2025 12:16:08 PM
rwxr-xr-x
📄
stat
86.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
stdbuf
50.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
stty
82.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
su
66.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
sudo
162.16 KB
04/04/2023 11:56:28 AM
rwxr-xr-x
📄
sudoedit
162.16 KB
04/04/2023 11:56:28 AM
rwxr-xr-x
📄
sudoreplay
63 KB
04/04/2023 11:56:28 AM
rwxr-xr-x
📄
sum
46.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
sync
38.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
systemctl
973.23 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
systemd
1.54 MB
03/02/2023 12:58:02 PM
rwxr-xr-x
📄
systemd-analyze
1.51 MB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
systemd-ask-password
14.34 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
systemd-cat
18.23 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
systemd-cgls
22.33 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
systemd-cgtop
38.24 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
systemd-delta
26.22 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
systemd-detect-virt
18.22 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
systemd-escape
22.22 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
systemd-hwdb
106.52 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
systemd-id128
22.22 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
systemd-inhibit
22.24 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
systemd-machine-id-setup
26.32 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
systemd-mount
50.45 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
systemd-notify
18.23 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
systemd-path
18.22 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
systemd-resolve
126.38 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
systemd-run
58.42 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
systemd-socket-activate
26.22 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
systemd-stdio-bridge
22.23 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
systemd-sysusers
54.52 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
systemd-tmpfiles
86.41 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
systemd-tty-ask-password-agent
30.22 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
systemd-umount
50.45 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
tabs
18.3 KB
05/16/2023 06:47:48 PM
rwxr-xr-x
📄
tac
42.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
tail
70.4 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
tar
437.61 KB
12/05/2023 05:16:50 AM
rwxr-xr-x
📄
taskset
34.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
tee
42.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
tempfile
14.02 KB
12/07/2019 02:13:44 AM
rwxr-xr-x
📄
test
54.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
tic
90.41 KB
05/16/2023 06:47:48 PM
rwxr-xr-x
📄
timedatectl
815 bytes
05/26/2025 10:13:01 PM
rwxr-xr-x
📄
timedatectl.real
46.22 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
timeout
42.77 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
tload
22.24 KB
10/31/2023 11:35:56 AM
rwxr-xr-x
📄
toe
22.3 KB
05/16/2023 06:47:48 PM
rwxr-xr-x
📄
top
126.05 KB
10/31/2023 11:35:56 AM
rwxr-xr-x
📄
touch
98.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
tput
26.34 KB
05/16/2023 06:47:48 PM
rwxr-xr-x
📄
tr
50.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
true
38.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
truncate
42.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
tset
30.31 KB
05/16/2023 06:47:48 PM
rwxr-xr-x
📄
tsort
42.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
tty
38.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
tzselect
15.02 KB
01/29/2025 02:41:47 PM
rwxr-xr-x
📄
ucf
39.73 KB
12/14/2018 08:51:14 AM
rwxr-xr-x
📄
ucfq
18.91 KB
12/14/2018 08:51:14 AM
rwxr-xr-x
📄
ucfr
10.47 KB
12/14/2018 08:51:14 AM
rwxr-xr-x
📄
udevadm
931.2 KB
06/17/2024 08:29:39 PM
rwxr-xr-x
📄
umount
38.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
uname
38.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
uncompress
2.29 KB
04/08/2022 11:05:45 AM
rwxr-xr-x
📄
unexpand
42.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
uniq
50.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
unlink
38.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
unshare
42.43 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
unsquashfs
112.12 KB
10/12/2021 12:36:41 AM
rwxr-xr-x
📄
update-alternatives
54.41 KB
05/25/2022 11:14:20 AM
rwxr-xr-x
📄
uptime
14.23 KB
10/31/2023 11:35:56 AM
rwxr-xr-x
📄
users
38.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
utmpdump
30.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
vcs-run
6.75 KB
02/25/2020 08:41:21 PM
rwxr-xr-x
📄
vdir
138.81 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
vi
1.29 MB
04/02/2025 04:39:51 PM
rwxr-xr-x
📄
view
1.29 MB
04/02/2025 04:39:51 PM
rwxr-xr-x
📄
vim.tiny
1.29 MB
04/02/2025 04:39:51 PM
rwxr-xr-x
📄
vmstat
38.25 KB
10/31/2023 11:35:56 AM
rwxr-xr-x
📄
w
22.23 KB
10/31/2023 11:35:56 AM
rwxr-xr-x
📄
w.procps
22.23 KB
10/31/2023 11:35:56 AM
rwxr-xr-x
📄
wall
34.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
watch
26.57 KB
10/31/2023 11:35:56 AM
rwxr-xr-x
📄
wc
46.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
wdctl
34.23 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
whereis
34.66 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
which
946 bytes
12/07/2019 02:13:44 AM
rwxr-xr-x
📄
who
58.37 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
whoami
38.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
wpa_passphrase
82.32 KB
02/24/2025 08:14:55 PM
rwxr-xr-x
📄
x86_64
26.5 KB
04/09/2024 03:34:13 PM
rwxr-xr-x
📄
xargs
74.37 KB
02/18/2020 01:05:59 AM
rwxr-xr-x
📄
xdg-open
38 bytes
05/26/2025 10:13:02 PM
rwxr-xr-x
📄
xdg-settings
1.68 KB
05/26/2025 10:13:02 PM
rwxr-xr-x
📄
xxd
18.27 KB
04/02/2025 04:39:51 PM
rwxr-xr-x
📄
yes
38.34 KB
09/05/2019 10:38:40 AM
rwxr-xr-x
📄
ypdomainname
26.23 KB
11/07/2019 11:31:36 AM
rwxr-xr-x
📄
zcat
1.94 KB
04/08/2022 11:05:45 AM
rwxr-xr-x
📄
zcmp
1.64 KB
04/08/2022 11:05:45 AM
rwxr-xr-x
📄
zdiff
5.76 KB
04/08/2022 11:05:45 AM
rwxr-xr-x
📄
zdump
26.21 KB
01/29/2025 02:41:47 PM
rwxr-xr-x
📄
zegrep
29 bytes
04/08/2022 11:05:45 AM
rwxr-xr-x
📄
zfgrep
29 bytes
04/08/2022 11:05:45 AM
rwxr-xr-x
📄
zforce
2.03 KB
04/08/2022 11:05:45 AM
rwxr-xr-x
📄
zgrep
7.91 KB
04/08/2022 11:05:45 AM
rwxr-xr-x
📄
zless
2.15 KB
04/08/2022 11:05:45 AM
rwxr-xr-x
📄
zmore
1.8 KB
04/08/2022 11:05:45 AM
rwxr-xr-x
📄
znew
4.47 KB
04/08/2022 11:05:45 AM
rwxr-xr-x
Editing: ssh-copy-id
Close
#!/bin/sh # Copyright (c) 1999-2016 Philip Hands <phil@hands.com> # 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 # 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 most_recent_id="$(cd "$HOME" ; ls -t .ssh/id*.pub 2>/dev/null | grep -v -- '-cert.pub$' | head -n 1)" DEFAULT_PUB_ID_FILE="${most_recent_id:+$HOME/}$most_recent_id" usage () { printf 'Usage: %s [-h|-?|-f|-n] [-i [identity_file]] [-p port] [[-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-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() { local 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 ) || { local 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 test "$#" -gt 0 do [ "${SEEN_OPT_I}" ] && expr "$1" : "[-]i" >/dev/null && { printf "\n%s: ERROR: -i option must not be specified more than once\n\n" "$0" usage } OPT= OPTARG= # implement something like getopt to avoid Solaris pain case "$1" in -i?*|-o?*|-p?*) OPT="$(printf -- "$1"|cut -c1-2)" OPTARG="$(printf -- "$1"|cut -c3-)" shift ;; -o|-p) OPT="$1" OPTARG="$2" shift 2 ;; -i) OPT="$1" test "$#" -le 2 || expr "$2" : "[-]" >/dev/null || { OPTARG="$2" shift } shift ;; -f|-n|-h|-\?) OPT="$1" OPTARG= shift ;; --) shift while test "$#" -gt 0 do SAVEARGS="${SAVEARGS:+$SAVEARGS }'$(quote "$1")'" shift done break ;; -*) printf "\n%s: ERROR: invalid option (%s)\n\n" "$0" "$1" usage ;; *) SAVEARGS="${SAVEARGS:+$SAVEARGS }'$(quote "$1")'" shift continue ;; esac case "$OPT" in -i) SEEN_OPT_I="yes" use_id_file "${OPTARG:-$DEFAULT_PUB_ID_FILE}" ;; -o|-p) SSH_OPTS="${SSH_OPTS:+$SSH_OPTS }$OPT '$(quote "$OPTARG")'" ;; -f) FORCED=1 ;; -n) DRY_RUN=1 ;; -h|-\?) usage ;; esac done eval set -- "$SAVEARGS" 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=$(printf "%s\n" "$1" | sed 's/:$//') # 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" if [ -z "$(eval $GET_ID)" ] && [ -r "${PUB_ID_FILE:=$DEFAULT_PUB_ID_FILE}" ] ; then use_id_file "$PUB_ID_FILE" fi if [ -z "$(eval $GET_ID)" ] ; then printf '%s: ERROR: No identities found\n' "$0" >&2 exit 1 fi # populate_new_ids() uses several global variables ($USER_HOST, $SSH_OPTS ...) # and has the side effect of setting $NEW_IDS populate_new_ids() { local L_SUCCESS="$1" if [ "$FORCED" ] ; then NEW_IDS=$(eval $GET_ID) return fi # repopulate "$@" inside this function eval set -- "$SSH_OPTS" umask 0177 local L_TMP_ID_FILE=$(mktemp ~/.ssh/ssh-copy-id_id.XXXXXXXXXX) if test $? -ne 0 || test "x$L_TMP_ID_FILE" = "x" ; then printf '%s: ERROR: mktemp failed\n' "$0" >&2 exit 1 fi local L_CLEANUP="rm -f \"$L_TMP_ID_FILE\" \"${L_TMP_ID_FILE}.stderr\"" trap "$L_CLEANUP" EXIT TERM INT QUIT printf '%s: INFO: attempting to log in with the new key(s), to filter out any that are already installed\n' "$0" >&2 NEW_IDS=$( eval $GET_ID | { while read 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 2>"$L_TMP_ID_FILE.stderr" </dev/null if [ "$?" = "$L_SUCCESS" ] ; then : > "$L_TMP_ID_FILE" else grep 'Permission denied' "$L_TMP_ID_FILE.stderr" >/dev/null || { sed -e 's/^/ERROR: /' <"$L_TMP_ID_FILE.stderr" >"$L_TMP_ID_FILE" cat >/dev/null #consume the other keys, causing loop to end } fi cat "$L_TMP_ID_FILE" done } ) eval "$L_CLEANUP" && trap - EXIT TERM INT QUIT 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' "$0" >&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 } REMOTE_VERSION=$(ssh -v -o PreferredAuthentications=',' -o ControlPath=none "$@" 2>&1 | sed -ne 's/.*remote software version //p') 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 ~/.ssh/authorized_keys as one might expect populate_new_ids 0 # in ssh below - to defend against quirky remote shells: use 'exec sh -c' to get POSIX; # 'cd' to be at $HOME; add a newline if it's missing; and all on one line, because tcsh. [ "$DRY_RUN" ] || printf '%s\n' "$NEW_IDS" | \ ssh "$@" "exec sh -c 'cd ; umask 077 ; mkdir -p .ssh && { [ -z "'`tail -1c .ssh/authorized_keys 2>/dev/null`'" ] || echo >> .ssh/authorized_keys ; } && cat >> .ssh/authorized_keys || exit 1 ; if type restorecon >/dev/null 2>&1 ; then restorecon -F .ssh .ssh/authorized_keys ; fi'" \ || exit 1 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: "ssh $SSH_OPTS" and check to make sure that only the key(s) you wanted were added. EOF fi # =-=-=-=