Ключи хранятся в $HOME/.ssh/authorized_keys (дефолтное имя, может быть изменено)
Каждый ключ - одна строка этого файла.
Кто их прислал посмотреть нельзя, поскольку их в этот файл можно даже просто вставить любым текстовым редактором, без всяких логов. Но в конце ключа обычно идет комментарий, который может помочь.
Удалить - просто удаляешь строчку с конкретным ключом. Обычным текстовым редактором (vi подойдет).
закрыть 8080 порт через iptables для всех, кроме вашего IP
# закрыть 8080 порт для всех
iptables -P INPUT DROP --dports 8080
# открыть 8080 порт для адреса
iptables -A INPUT -m multiport --dports 22,5432 -s 188.225.72.45 -j ACCEPT
1. Команда date позволяет создать строку в удобном виде, используя date +<формат>
2. Команда, заключенная в обратные одинарные кавычки, будет выполнена, и вместо нее подставлен результат выполнения.
То есть можно делать
zip myarchive.zip file1 file2 file3
А можно
zip myarchive_`date +%Y%m%d-%H%M%S`.zip file1 file2 file3
3. Копировать файлы на удаленный сервер без пароля - настройте авторизацию по ssh ключам.
4. Удалять старые файлы можно, выполняя на удаленном компе например команду
find /directory -ctime +10 -delete
будут удаляться файлы старше 10 дней.
А вообще, посидите вечерок, погуглите что такое bash и стандартные консольные команды в Linux.
SSH позволяет безопасно передавать в незащищённой среде практически любой другой сетевой протокол. Таким образом, можно не только удалённо работать на компьютере через командную оболочку, но и передавать по шифрованному каналу звуковой поток или видео (например, с веб-камеры)[2]. Также SSH может использовать сжатие передаваемых данных для последующего их шифрования, что удобно, например, для удалённого запуска клиентов X Window System.
Не путайте реализацию удаленного шелла и протокол.
telnet это например тоже целый протокол, а не только клиент для подключения к командной строке винды.
1) кейлоггеры не стырят пароль
2) поменять ключ - гораздо проще, чем создать и запомнить новый пароль.
3) ключ можно использовать для автоматической авторизации
4) ключ более сложный, его нельзя сделать "123", "god", "sex"
5) можно дать доступ множеству пользователей к одному и тому же ресурсу, раздав разные ключи. Пароль же только один.
Поставить user1 владельцем /var/www/site1
Поставить user2 владельцем /var/www/site2
Поставить для обоих каталогов группу, например, и добавить в нее пользователя, от имени которого запускается ваш nginx (может такие пользователь и группа уже даже есть).
На обоих каталогах поставить права 770 (rwxrwx---), чтобы владельцы и группы имели полный доступ.
В некоторых системах доступ к удаленному root не поощряется, лучше подключаться к удаленной машине под пользователем и если крайне необходимо, сразу выполнять sudo bash, настроив /etc/sudoers чтобы не запрашивало лишних паролей
ну и сделайте ssh -v root@server
чтобы посмотреть подробнее лог, что там не так.
Удаляете пароль у пользователя root
запрещаете заходить под пользователем root
Настраиваете нужным пользователям sudo
Все. Каждый заходит под собой, если нужно - пользуется sudo, а сам root как отдельный интерактивный юзер не нужен, он нужен только чтобы init запустить
Если вы админ на этом линуксе, то вариантов много.
* Поставьте conspy
* смотрите что в /dev/vcsa1...
* запускайте screen и шарьте экран
* смотрите ttylog pts/1
Не нужно писать архитектуру.
То что вы хотите делать, уже выполняют менеджеры экранов - screen и tmux - пользуйтесь ими. Если очень интересно, посмотрите как они написаны.
Но добавлять такой функционал в свою программу - не линукс way, если уже есть готовые инструменты.
"Для того, чтобы присоединиться по SSH к нужному серверу, нужно сгенерировать ключи для него."
Не для него, а для удаленного пользователя.
Вы можете сгенерировать одну пару ключей, и пользоваться той же самой парой для подключения ко всем серверам.
Приватный ключ на главном сервере, публичный ключ - на серверах к которым подключаться, у удаленного юзера.