Одна определенная проблема с ним состоит в том, что это - аутентификация простого текста, т.е. имя пользователя и пароль представляются ясное по сети, если Вы не соединяетесь по HTTPS.
Кроме того, нет никаких реальных встроенных контрмер нападения, Вы можете грубые запросы силы против всего этого день, и это не заблокирует соединение.
Для предотвращения ботов, получающих доступ сайту, можно использовать robots.txt: http://www.robotstxt.org/
Google и все уважение этот файл, но если Вы говорите о ботах взлома, это не поможет.
аутентификация htaccess не точно безопасна, но, вероятно, лучше, чем использование Сценария PHP для аутентификации, который будет иметь те же проблемы, но добавит в дополнительном слое уязвимости PHP.
Если Вы используете htaccess аутентификацию, наряду с определенным диапазоном IP-адреса белого списка ('Позволяют от'), и подключение по HTTPS, я считал бы это довольно безопасным. Для дополнительной безопасности Вы могли настроить белый список IP на уровне брандмауэра, а не уровне Apache.
ssh-agent is supposed to start a session and when it finishes the user session is over. So any command after ssh-agent would perhaps be executed after logoff.
What you want is a session-script
that contains your sessions commands like this:
#!/bin/bash
ssh-add /path/to/key
bash -i # or other session starter
Then start ssh-agent session-script
.
I tend to do something like this in scripts that require an agent.
#!/bin/bash
# if we can't find an agent, start one, and restart the script.
if [ -z "$SSH_AUTH_SOCK" ] ; then
exec ssh-agent bash -c "ssh-add ; $0"
exit
fi
... and so on.
Basically the first thing the script does it check to see if an agent is running. If it isn't exec is used to start a new process in place of the script. The agent is started, keys are added, and finally, the script is called again (see the $0
).
Я много пробовал, и решение, которое, в конце концов, сработало, это замена моей ключевой фразы на пустую строку.
ssh-keygen -p
Лучше использовать связка ключей в данном случае
Debian / Ubuntu:
apt-get install keychain
RHEL / Fedora / CentOS
yum install keychain
Добавьте в свой .bashrc следующее:
eval `keychain --eval id_rsa`
Я нашел с помощью решения Zoredache, ключ будет доступен любому shell'у, который случайно имеет тот же самый ssh-agent, что и shell'у, который вызвал скрипт. Я хотел избежать этого в скрипте, который требовал root доступа к удалённой машине, по очевидным причинам безопасности.
Я обнаружил, что в верхней части скрипта работает следующее shebang:
#!/usr/bin/ssh-agent bash
ssh-add /path/to/ssh-key
ssh root@remotehost "remote commands"
Поместите следующее вверху вашего скрипта:
eval `ssh-agent`
Ваш скрипт должен выглядеть так:
#!/bin/bash
eval `ssh-agent`
ssh-add /path/to/key
...
...
Пояснение
Обратные кавычки вокруг ssh-agent
collect его выход. eval
собирает этот вывод, объединяет его в одну команду, а затем выполняет команду. Затем вы можете использовать ssh-add
, чтобы указать свои ключевые учетные данные.
Я обнаружил, что это работает для меня.
eval `ssh-agent` # create the process
ssh-add ~/.ssh/priv_key # add the key
git -C $repo_dir pull # this line is the reason for the ssh-agent
eval `ssh-agent -k` # kill the process
Я создаю процесс ssh-agent, добавляю ключ, делаю то, что мне нужно делать, а потом убить. Не нужно проверять, работает ли он позже.