Подтвердить пароль ssh и файл журнала

Я предпочитаю выключать ZRAM, так как я уже использую раздел диска для swap. Я нахожусь на 13.10 на одной машине и 12.0.4 на другой.

Я бы предложил еще одно возможное изменение /etc/init/zram-config.conf, чтобы полностью остановить zram-свопы. Предполагая, что вы используете стандартный уровень выполнения по умолчанию 2, измените строку:

start on runlevel [2345]

на

start on runlevel [345]

Я использовал тот же трюк на /etc/init/tty1.conf, чтобы выйти сообщений консоли для view.r.

3
задан 15 October 2011 в 02:06

7 ответов

SSH не был разработан для такого доступа по требованию. Однако, если доступ к оболочке (или передача файлов) является единственной вещью, о которой вам нужно беспокоиться, вы должны ограничить возможности SSH и добавить скрипт, который не запускает оболочку, если вы не разрешаете.

Для части ограничения SSH я принял участие в создании Как создать ограниченного пользователя SSH для перенаправления портов ?. Измените /etc/ssh/sshd_config и добавьте:

Match user your-username
    AllowAgentForwarding no
    ForceCommand ~/bin/ssh-confirm

Создайте исполняемый файл ~/bin/ssh-confirm (режим 755) и создайте скрипт / программу на выбранном вами языке, который заставит вас подтвердить, прежде чем отбрасывать оболочку SSH , например:

#!/bin/bash
confirmfile="$HOME/allow-ssh-for-pid-$$"
if [ -f "$confirmfile" ]; then
    echo "Old confirmation file found for the SSH session, exiting!"
    exit 1
fi
# wait for a grant for 30 seconds before giving up
for ((i=0; i<30; i++)); do
    if [ -f "$confirmfile" ]; then
        rm "$confirmfile"
        exec "$SHELL"
    fi
    sleep 1
done
echo "SSH access timed out."
exit 1

Для этого вам потребуется создать файл «allow-ssh-for-pid - $$», где $$ является pid скрипта, выполненного из SSH. Вы можете использовать ps, pidof и т. Д. Для определения PID. Конечно, это может быть более сложным, например, предупреждать вас через notify, но я предполагаю, что люди дадут вам кольцо, если они попытаются получить к вам доступ.

Кроме того, я полагаю, вы доверяете людям вы предоставляете SSH-доступ. Если нет, создайте отдельного пользователя (без sudo прав, конечно;)) и сохраните ssh-confirm в таком месте, как /usr/local/bin, и сохраните токены доступа в другом месте.

SSH попытки входа (и выходы) регистрируются на /var/log/auth.log. Запустите w, чтобы получить список зарегистрированных пользователей (обратите внимание: вы получите несколько записей для терминалов, которые вы открываете на своей машине, обратите внимание на столбец FROM).

3
ответ дан 25 May 2018 в 18:11
  • 1
    Я не знал о w. Это команда, о которой я много лет интересовался, и теперь задаюсь вопросом, почему никто не сказал мне, что существует! – Anna 15 October 2011 в 02:17
  • 2
    @Anna: finger еще один забавный. – Lekensteyn 15 October 2011 в 02:20
  • 3
    ха-ха было время, так как эта команда подошла! спасибо за развлечение, просто приклеил команду и ее выход к моей девушке, что я только что использовал мои vps вчера, много веселье и легкомыслие обязательно последуют! – Anna 15 October 2011 в 02:55

SSH не был предназначен для такого доступа по требованию. Однако, если доступ к оболочке (или передача файлов) является единственной вещью, о которой вам нужно беспокоиться, вы должны ограничить возможности SSH и добавить скрипт, который не запускает оболочку, если вы не позволите.

Для части ограничения SSH я взял часть Как создать ограниченного пользователя SSH для перенаправления портов? . Измените /etc/ssh/sshd_config и добавьте:

Match user your-username
    AllowAgentForwarding no
    ForceCommand ~/bin/ssh-confirm

Создайте исполняемый файл ~/bin/ssh-confirm (режим 755) и создайте скрипт / программу на выбранном вами языке, который заставит вас подтвердить, прежде чем отбрасывать оболочку SSH , например:

#!/bin/bash
confirmfile="$HOME/allow-ssh-for-pid-$$"
if [ -f "$confirmfile" ]; then
    echo "Old confirmation file found for the SSH session, exiting!"
    exit 1
fi
# wait for a grant for 30 seconds before giving up
for ((i=0; i<30; i++)); do
    if [ -f "$confirmfile" ]; then
        rm "$confirmfile"
        exec "$SHELL"
    fi
    sleep 1
done
echo "SSH access timed out."
exit 1

Для этого вам потребуется создать файл «allow-ssh-for-pid - $$», где $$ - это pid скрипта, выполненного из SSH. Вы можете использовать ps, pidof и т. Д. Для определения PID. Конечно, это может быть более сложным, как оповещение о вас через notify, но я буду считать, что люди дадут вам кольцо, если они попытаются получить к вам доступ.

Кроме того, я полагаю, вы доверяете людям вы предоставляете SSH-доступ. Если нет, создайте отдельного пользователя (без sudo прав, конечно;)) и сохраните ssh-confirm в месте, подобном /usr/local/bin, и сохраните токены доступа в другом месте.

SSH попытки входа (и выходы) регистрируются на /var/log/auth.log. Запустите w, чтобы получить список зарегистрированных пользователей (обратите внимание: вы получите несколько записей для терминалов, которые вы открываете на своей машине, обратите внимание на столбец FROM).

3
ответ дан 25 July 2018 в 21:10

SSH не был предназначен для такого доступа по требованию. Однако, если доступ к оболочке (или передача файлов) является единственной вещью, о которой вам нужно беспокоиться, вы должны ограничить возможности SSH и добавить скрипт, который не запускает оболочку, если вы не позволите.

Для части ограничения SSH я взял часть Как создать ограниченного пользователя SSH для перенаправления портов? . Измените /etc/ssh/sshd_config и добавьте:

Match user your-username
    AllowAgentForwarding no
    ForceCommand ~/bin/ssh-confirm

Создайте исполняемый файл ~/bin/ssh-confirm (режим 755) и создайте скрипт / программу на выбранном вами языке, который заставит вас подтвердить, прежде чем отбрасывать оболочку SSH , например:

#!/bin/bash
confirmfile="$HOME/allow-ssh-for-pid-$$"
if [ -f "$confirmfile" ]; then
    echo "Old confirmation file found for the SSH session, exiting!"
    exit 1
fi
# wait for a grant for 30 seconds before giving up
for ((i=0; i<30; i++)); do
    if [ -f "$confirmfile" ]; then
        rm "$confirmfile"
        exec "$SHELL"
    fi
    sleep 1
done
echo "SSH access timed out."
exit 1

Для этого вам потребуется создать файл «allow-ssh-for-pid - $$», где $$ - это pid скрипта, выполненного из SSH. Вы можете использовать ps, pidof и т. Д. Для определения PID. Конечно, это может быть более сложным, как оповещение о вас через notify, но я буду считать, что люди дадут вам кольцо, если они попытаются получить к вам доступ.

Кроме того, я полагаю, вы доверяете людям вы предоставляете SSH-доступ. Если нет, создайте отдельного пользователя (без sudo прав, конечно;)) и сохраните ssh-confirm в месте, подобном /usr/local/bin, и сохраните токены доступа в другом месте.

SSH попытки входа (и выходы) регистрируются на /var/log/auth.log. Запустите w, чтобы получить список зарегистрированных пользователей (обратите внимание: вы получите несколько записей для терминалов, которые вы открываете на своей машине, обратите внимание на столбец FROM).

3
ответ дан 4 August 2018 в 18:38

SSH не был предназначен для такого доступа по требованию. Однако, если доступ к оболочке (или передача файлов) является единственной вещью, о которой вам нужно беспокоиться, вы должны ограничить возможности SSH и добавить скрипт, который не запускает оболочку, если вы не позволите.

Для части ограничения SSH я взял часть Как создать ограниченного пользователя SSH для перенаправления портов? . Измените /etc/ssh/sshd_config и добавьте:

Match user your-username
    AllowAgentForwarding no
    ForceCommand ~/bin/ssh-confirm

Создайте исполняемый файл ~/bin/ssh-confirm (режим 755) и создайте скрипт / программу на выбранном вами языке, который заставит вас подтвердить, прежде чем отбрасывать оболочку SSH , например:

#!/bin/bash
confirmfile="$HOME/allow-ssh-for-pid-$$"
if [ -f "$confirmfile" ]; then
    echo "Old confirmation file found for the SSH session, exiting!"
    exit 1
fi
# wait for a grant for 30 seconds before giving up
for ((i=0; i<30; i++)); do
    if [ -f "$confirmfile" ]; then
        rm "$confirmfile"
        exec "$SHELL"
    fi
    sleep 1
done
echo "SSH access timed out."
exit 1

Для этого вам потребуется создать файл «allow-ssh-for-pid - $$», где $$ - это pid скрипта, выполненного из SSH. Вы можете использовать ps, pidof и т. Д. Для определения PID. Конечно, это может быть более сложным, как оповещение о вас через notify, но я буду считать, что люди дадут вам кольцо, если они попытаются получить к вам доступ.

Кроме того, я полагаю, вы доверяете людям вы предоставляете SSH-доступ. Если нет, создайте отдельного пользователя (без sudo прав, конечно;)) и сохраните ssh-confirm в месте, подобном /usr/local/bin, и сохраните токены доступа в другом месте.

SSH попытки входа (и выходы) регистрируются на /var/log/auth.log. Запустите w, чтобы получить список зарегистрированных пользователей (обратите внимание: вы получите несколько записей для терминалов, которые вы открываете на своей машине, обратите внимание на столбец FROM).

3
ответ дан 10 August 2018 в 09:06

SSH не был предназначен для такого доступа по требованию. Однако, если доступ к оболочке (или передача файлов) является единственной вещью, о которой вам нужно беспокоиться, вы должны ограничить возможности SSH и добавить скрипт, который не запускает оболочку, если вы не позволите.

Для части ограничения SSH я взял часть Как создать ограниченного пользователя SSH для перенаправления портов? . Измените /etc/ssh/sshd_config и добавьте:

Match user your-username
    AllowAgentForwarding no
    ForceCommand ~/bin/ssh-confirm

Создайте исполняемый файл ~/bin/ssh-confirm (режим 755) и создайте скрипт / программу на выбранном вами языке, который заставит вас подтвердить, прежде чем отбрасывать оболочку SSH , например:

#!/bin/bash
confirmfile="$HOME/allow-ssh-for-pid-$$"
if [ -f "$confirmfile" ]; then
    echo "Old confirmation file found for the SSH session, exiting!"
    exit 1
fi
# wait for a grant for 30 seconds before giving up
for ((i=0; i<30; i++)); do
    if [ -f "$confirmfile" ]; then
        rm "$confirmfile"
        exec "$SHELL"
    fi
    sleep 1
done
echo "SSH access timed out."
exit 1

Для этого вам потребуется создать файл «allow-ssh-for-pid - $$», где $$ - это pid скрипта, выполненного из SSH. Вы можете использовать ps, pidof и т. Д. Для определения PID. Конечно, это может быть более сложным, как оповещение о вас через notify, но я буду считать, что люди дадут вам кольцо, если они попытаются получить к вам доступ.

Кроме того, я полагаю, вы доверяете людям вы предоставляете SSH-доступ. Если нет, создайте отдельного пользователя (без sudo прав, конечно;)) и сохраните ssh-confirm в месте, подобном /usr/local/bin, и сохраните токены доступа в другом месте.

SSH попытки входа (и выходы) регистрируются на /var/log/auth.log. Запустите w, чтобы получить список зарегистрированных пользователей (обратите внимание: вы получите несколько записей для терминалов, которые вы открываете на своей машине, обратите внимание на столбец FROM).

3
ответ дан 15 August 2018 в 21:59
/var/log/auth.log

Здесь вы можете просмотреть историю входа в систему. Я не уверен, что есть элегантное решение того, что вы думаете с контролем доступа, тем не менее, поскольку все, что я могу придумать, - это какая-то сумасшедшая схема, в которой вы используете rsync или что-то подобное, чтобы отменить и восстановить SSH-ключи по мере необходимости.

0
ответ дан 25 May 2018 в 18:11
/var/log/auth.log

Здесь вы можете просмотреть историю входа в систему. Я не уверен, что есть элегантное решение того, что вы думаете с контролем доступа, тем не менее, поскольку все, что я могу придумать, - это какая-то сумасшедшая схема, в которой вы используете rsync или что-то подобное, чтобы отменить и восстановить SSH-ключи по мере необходимости.

0
ответ дан 6 August 2018 в 03:03

Другие вопросы по тегам:

Похожие вопросы: