Я сделал глупую ошибку ... Я играл с busybox и использовал chsh
чтобы переключить корневую оболочку с / bin / sh на / bin / busybox, что, похоже, нарушило доступ SSH.
Когда я делаю:
root@dev:~$ ssh root@ip.of.ser.ver
Я получил:
root@ip.of.ser.ver's password:
BusyBox v1.22.1 (2015-06-19 07:36:41 CEST) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2012.
Licensed under GPLv2. See source distribution for detailed
copyright notices.
Usage: busybox [function [arguments]...]
or: busybox --list
or: function [arguments]...
BusyBox is a multi-call binary that combines many common Unix
utilities into a single executable. Most people will create a
link to busybox for each function they wish to use and BusyBox
will act like whatever it was invoked as.
Currently defined functions:
[, [[, addgroup, adduser, ar, ash, awk, basename, brctl, bunzip2, bzcat, cat, chattr, chgrp, chmod, chown, chroot, chvt, clear, cmp, cp, cpio, cut, date, dc, dd, deallocvt, delgroup, deluser, depmod, df,
diff, dirname, dmesg, dnsdomainname, du, dumpkmap, dumpleases, echo, egrep, env, expr, false, fbset, fdisk, fgrep, find, flock, free, fsck, fstrim, fuser, getty, grep, groups, gunzip, gzip, halt, head,
hexdump, hostname, hwclock, id, ifconfig, ifdown, ifup, insmod, ip, kill, killall, less, ln, loadfont, loadkmap, logger, logname, losetup, ls, lsmod, md5sum, microcom, mkdir, mkfifo, mknod, mkswap,
mktemp, modprobe, more, mount, mv, nc, netstat, nohup, nslookup, od, openvt, patch, pidof, pivot_root, poweroff, printf, ps, pwd, rdate, readlink, realpath, reboot, renice, reset, rfkill, rm, rmdir,
rmmod, route, run-parts, sed, seq, setconsole, sh, sha3sum, sleep, sort, start-stop-daemon, stat, strings, stty, sulogin, swapoff, swapon, switch_root, sync, sysctl, tail, tar, tee, telnet, test, tftp,
time, top, touch, tr, true, tty, udhcpc, udhcpd, umount, uname, uniq, unzip, uptime, users, usleep, vi, watch, wc, wget, which, who, whoami, xargs, yes, zcat
Connection to ip.of.ser.ver closed.
Технически я не уверен, почему он закрывает соединение. Технически я не знаю, как это исправить, и хотел бы восстановить доступ к устройству.
Насколько я знаю, мне просто нужно отредактировать /etc/passwd
и изменить его обратно, но как я могу это сделать с тем, что сейчас произошло?
Соединение закрыто, потому что звонит /bin/busybox
просто показывает вам вывод, который вы видите, но не запускает сеанс оболочки (попробуйте его в терминале). Вам нужно создать символическую ссылку /usr/bin/ash -> /bin/busybox
и позвони /usr/bin/ash
чтобы запустить оболочку busybox.
Вам, вероятно, придется исправить это с помощью спасательной системы, чтобы вернуть обратно.
Если вы включили SFTP-доступ к этому компьютеру, попробуйте его. Скорее всего, он настроен так, чтобы не требовать действительную оболочку (internal-sftp). Затем вы можете отредактировать свой / etc / passwd файл.