Хорошая дискуссия между Рафаэлем Б. и Стефано Палаццо о том, какой метод рекомендуется. Однако никто не говорит кем.
Я рекомендую установить мою личную версию Eclipse для ряда причины:
Это смешно просто. Упакованная версия всегда будет немного отставать, и мне нужен передний край. Мне также нужно согласовывать с другими людьми в моем магазине. Это позволяет мне иметь несколько установок Eclipse бок о бок, каждый из которых имеет другой набор плагинов, так как часто плохой идеей является включение каждого плагина под солнцем (ах, непреднамеренный каламбур) в один Eclipse.Даже если агент встал, если определенные переменные среды не установлены, у вас нет ссылки на агента. Кроме того, даже если все в порядке, агент и переменные, идентификатор автоматически не отправляется агенту: это задача для ssh-askpass, работающая только в X сеансах.
Если вы используете bash, создайте файл ~/.bash_profile с этим контентом:
# File: ~/.bash_profile
# source ~/.profile, if available
if [[ -r ~/.profile ]]; then
. ~/.profile
fi
# start agent and set environment variables, if needed
agent_started=0
if ! env | grep -q SSH_AGENT_PID >/dev/null; then
echo "Starting ssh agent"
eval $(ssh-agent -s)
agent_started=1
fi
# ssh become a function, adding identity to agent when needed
ssh() {
if ! ssh-add -l >/dev/null 2>&-; then
ssh-add ~/.ssh/id_dsa
fi
/usr/bin/ssh "$@"
}
export -f ssh
# another example: git
git() {
if ! ssh-add -l >/dev/null 2>&-; then
ssh-add ~/.ssh/id_dsa
fi
/usr/bin/git "$@"
}
export -f git
измените имя файла ~/.ssh/id_dsa в соответствии с вашими потребностями и добавьте эту строку в ~/.bash_logout
# stuff to add at end of ~/.bash_logout
if ((agent_started)); then
echo "Killing ssh agent"
ssh-agent -k
fi
A последнее примечание: это не мешает сеансу gnome, потому что в этом случае используется только ~/.profile, и вы можете воспользоваться графическим интерфейсом ssh-askpass, который запрашивает кодовую фразу и отправляет ее в ssh-agent.
Даже если агент встал, если определенные переменные среды не установлены, у вас нет ссылки на агента. Кроме того, даже если все в порядке, агент и переменные, идентификатор автоматически не отправляется агенту: это задача для ssh-askpass, работающая только в X сеансах.
Если вы используете bash, создайте файл ~/.bash_profile с этим контентом:
# File: ~/.bash_profile
# source ~/.profile, if available
if [[ -r ~/.profile ]]; then
. ~/.profile
fi
# start agent and set environment variables, if needed
agent_started=0
if ! env | grep -q SSH_AGENT_PID >/dev/null; then
echo "Starting ssh agent"
eval $(ssh-agent -s)
agent_started=1
fi
# ssh become a function, adding identity to agent when needed
ssh() {
if ! ssh-add -l >/dev/null 2>&-; then
ssh-add ~/.ssh/id_dsa
fi
/usr/bin/ssh "$@"
}
export -f ssh
# another example: git
git() {
if ! ssh-add -l >/dev/null 2>&-; then
ssh-add ~/.ssh/id_dsa
fi
/usr/bin/git "$@"
}
export -f git
измените имя файла ~/.ssh/id_dsa в соответствии с вашими потребностями и добавьте эту строку в ~/.bash_logout
# stuff to add at end of ~/.bash_logout
if ((agent_started)); then
echo "Killing ssh agent"
ssh-agent -k
fi
A последнее примечание: это не мешает сеансу gnome, потому что в этом случае используется только ~/.profile, и вы можете воспользоваться графическим интерфейсом ssh-askpass, который запрашивает кодовую фразу и отправляет ее в ssh-agent.
Даже если агент встал, если определенные переменные среды не установлены, у вас нет ссылки на агента. Кроме того, даже если все в порядке, агент и переменные, идентификатор автоматически не отправляется агенту: это задача для ssh-askpass, работающая только в X сеансах.
Если вы используете bash, создайте файл ~/.bash_profile с этим контентом:
# File: ~/.bash_profile
# source ~/.profile, if available
if [[ -r ~/.profile ]]; then
. ~/.profile
fi
# start agent and set environment variables, if needed
agent_started=0
if ! env | grep -q SSH_AGENT_PID >/dev/null; then
echo "Starting ssh agent"
eval $(ssh-agent -s)
agent_started=1
fi
# ssh become a function, adding identity to agent when needed
ssh() {
if ! ssh-add -l >/dev/null 2>&-; then
ssh-add ~/.ssh/id_dsa
fi
/usr/bin/ssh "$@"
}
export -f ssh
# another example: git
git() {
if ! ssh-add -l >/dev/null 2>&-; then
ssh-add ~/.ssh/id_dsa
fi
/usr/bin/git "$@"
}
export -f git
измените имя файла ~/.ssh/id_dsa в соответствии с вашими потребностями и добавьте эту строку в ~/.bash_logout
# stuff to add at end of ~/.bash_logout
if ((agent_started)); then
echo "Killing ssh agent"
ssh-agent -k
fi
A последнее примечание: это не мешает сеансу gnome, потому что в этом случае используется только ~/.profile, и вы можете воспользоваться графическим интерфейсом ssh-askpass, который запрашивает кодовую фразу и отправляет ее в ssh-agent.
Даже если агент встал, если определенные переменные среды не установлены, у вас нет ссылки на агента. Кроме того, даже если все в порядке, агент и переменные, идентификатор автоматически не отправляется агенту: это задача для ssh-askpass, работающая только в X сеансах.
Если вы используете bash, создайте файл ~/.bash_profile с этим контентом:
# File: ~/.bash_profile
# source ~/.profile, if available
if [[ -r ~/.profile ]]; then
. ~/.profile
fi
# start agent and set environment variables, if needed
agent_started=0
if ! env | grep -q SSH_AGENT_PID >/dev/null; then
echo "Starting ssh agent"
eval $(ssh-agent -s)
agent_started=1
fi
# ssh become a function, adding identity to agent when needed
ssh() {
if ! ssh-add -l >/dev/null 2>&-; then
ssh-add ~/.ssh/id_dsa
fi
/usr/bin/ssh "$@"
}
export -f ssh
# another example: git
git() {
if ! ssh-add -l >/dev/null 2>&-; then
ssh-add ~/.ssh/id_dsa
fi
/usr/bin/git "$@"
}
export -f git
измените имя файла ~/.ssh/id_dsa в соответствии с вашими потребностями и добавьте эту строку в ~/.bash_logout
# stuff to add at end of ~/.bash_logout
if ((agent_started)); then
echo "Killing ssh agent"
ssh-agent -k
fi
A последнее примечание: это не мешает сеансу gnome, потому что в этом случае используется только ~/.profile, и вы можете воспользоваться графическим интерфейсом ssh-askpass, который запрашивает кодовую фразу и отправляет ее в ssh-agent.
Даже если агент встал, если определенные переменные среды не установлены, у вас нет ссылки на агента. Кроме того, даже если все в порядке, агент и переменные, идентификатор автоматически не отправляется агенту: это задача для ssh-askpass, работающая только в X сеансах.
Если вы используете bash, создайте файл ~/.bash_profile с этим контентом:
# File: ~/.bash_profile
# source ~/.profile, if available
if [[ -r ~/.profile ]]; then
. ~/.profile
fi
# start agent and set environment variables, if needed
agent_started=0
if ! env | grep -q SSH_AGENT_PID >/dev/null; then
echo "Starting ssh agent"
eval $(ssh-agent -s)
agent_started=1
fi
# ssh become a function, adding identity to agent when needed
ssh() {
if ! ssh-add -l >/dev/null 2>&-; then
ssh-add ~/.ssh/id_dsa
fi
/usr/bin/ssh "$@"
}
export -f ssh
# another example: git
git() {
if ! ssh-add -l >/dev/null 2>&-; then
ssh-add ~/.ssh/id_dsa
fi
/usr/bin/git "$@"
}
export -f git
измените имя файла ~/.ssh/id_dsa в соответствии с вашими потребностями и добавьте эту строку в ~/.bash_logout
# stuff to add at end of ~/.bash_logout
if ((agent_started)); then
echo "Killing ssh agent"
ssh-agent -k
fi
A последнее примечание: это не мешает сеансу gnome, потому что в этом случае используется только ~/.profile, и вы можете воспользоваться графическим интерфейсом ssh-askpass, который запрашивает кодовую фразу и отправляет ее в ssh-agent.
Даже если агент встал, если определенные переменные среды не установлены, у вас нет ссылки на агента. Кроме того, даже если все в порядке, агент и переменные, идентификатор автоматически не отправляется агенту: это задача для ssh-askpass, работающая только в X сеансах.
Если вы используете bash, создайте файл ~/.bash_profile с этим контентом:
# File: ~/.bash_profile
# source ~/.profile, if available
if [[ -r ~/.profile ]]; then
. ~/.profile
fi
# start agent and set environment variables, if needed
agent_started=0
if ! env | grep -q SSH_AGENT_PID >/dev/null; then
echo "Starting ssh agent"
eval $(ssh-agent -s)
agent_started=1
fi
# ssh become a function, adding identity to agent when needed
ssh() {
if ! ssh-add -l >/dev/null 2>&-; then
ssh-add ~/.ssh/id_dsa
fi
/usr/bin/ssh "$@"
}
export -f ssh
# another example: git
git() {
if ! ssh-add -l >/dev/null 2>&-; then
ssh-add ~/.ssh/id_dsa
fi
/usr/bin/git "$@"
}
export -f git
измените имя файла ~/.ssh/id_dsa в соответствии с вашими потребностями и добавьте эту строку в ~/.bash_logout
# stuff to add at end of ~/.bash_logout
if ((agent_started)); then
echo "Killing ssh agent"
ssh-agent -k
fi
A последнее примечание: это не мешает сеансу gnome, потому что в этом случае используется только ~/.profile, и вы можете воспользоваться графическим интерфейсом ssh-askpass, который запрашивает кодовую фразу и отправляет ее в ssh-agent.
Даже если агент встал, если определенные переменные среды не установлены, у вас нет ссылки на агента. Кроме того, даже если все в порядке, агент и переменные, идентификатор автоматически не отправляется агенту: это задача для ssh-askpass, работающая только в X сеансах.
Если вы используете bash, создайте файл ~/.bash_profile с этим контентом:
# File: ~/.bash_profile
# source ~/.profile, if available
if [[ -r ~/.profile ]]; then
. ~/.profile
fi
# start agent and set environment variables, if needed
agent_started=0
if ! env | grep -q SSH_AGENT_PID >/dev/null; then
echo "Starting ssh agent"
eval $(ssh-agent -s)
agent_started=1
fi
# ssh become a function, adding identity to agent when needed
ssh() {
if ! ssh-add -l >/dev/null 2>&-; then
ssh-add ~/.ssh/id_dsa
fi
/usr/bin/ssh "$@"
}
export -f ssh
# another example: git
git() {
if ! ssh-add -l >/dev/null 2>&-; then
ssh-add ~/.ssh/id_dsa
fi
/usr/bin/git "$@"
}
export -f git
измените имя файла ~/.ssh/id_dsa в соответствии с вашими потребностями и добавьте эту строку в ~/.bash_logout
# stuff to add at end of ~/.bash_logout
if ((agent_started)); then
echo "Killing ssh agent"
ssh-agent -k
fi
A последнее примечание: это не мешает сеансу gnome, потому что в этом случае используется только ~/.profile, и вы можете воспользоваться графическим интерфейсом ssh-askpass, который запрашивает кодовую фразу и отправляет ее в ssh-agent.
Даже если агент встал, если определенные переменные среды не установлены, у вас нет ссылки на агента. Кроме того, даже если все в порядке, агент и переменные, идентификатор автоматически не отправляется агенту: это задача для ssh-askpass
, работающая только в X сеансах.
Если вы используете bash, создайте файл ~ / .bash_profile
с этим контентом:
# Файл: ~ / .bash_profile # source ~ / .profile, if доступно, если [[-r ~ / .profile]]; тогда . ~ / .profile fi # запускать агент и устанавливать переменные среды, если необходимо agent_started = 0 if! env | grep -q SSH_AGENT_PID & gt; / dev / null; затем echo «Starting ssh agent» eval $ (ssh-agent -s) agent_started = 1 fi # ssh становится функцией, добавляя при необходимости идентификатор к агенту ssh () {if! ssh-add -l & gt; / dev / null 2 & amp; -; затем ssh-add ~ / .ssh / id_dsa fi / usr / bin / ssh "$ @"} export -f ssh # другой пример: git git () {if! ssh-add -l & gt; / dev / null 2 & amp; -; затем ssh-add ~ / .ssh / id_dsa fi / usr / bin / git "$ @"} export -f git
изменить имя файла ~ / .ssh / id_dsa
, следуя вашим потребностям, и добавьте эту строку в ~ / .bash_logout
# материал для добавления в конце ~ / .bash_logout, если ((agent_started) ); затем echo «ssh-agent Killing ssh» -k fi
Последнее примечание: это не мешает сеансу gnome, потому что в этом случае только ~ / .profile [ ! d6], и вы можете воспользоваться графическим интерфейсом
ssh-askpass
, который запрашивает кодовую фразу и отправляет ее в ssh-agent
.
Даже если агент встал, если определенные переменные среды не установлены, у вас нет ссылки на агента. Кроме того, даже если все в порядке, агент и переменные, идентификатор автоматически не отправляется агенту: это задача для ssh-askpass
, работающая только в X сеансах.
Если вы используете bash, создайте файл ~ / .bash_profile
с этим контентом:
# Файл: ~ / .bash_profile # source ~ / .profile, if доступно, если [[-r ~ / .profile]]; тогда . ~ / .profile fi # запускать агент и устанавливать переменные среды, если необходимо agent_started = 0 if! env | grep -q SSH_AGENT_PID & gt; / dev / null; затем echo «Starting ssh agent» eval $ (ssh-agent -s) agent_started = 1 fi # ssh становится функцией, добавляя при необходимости идентификатор к агенту ssh () {if! ssh-add -l & gt; / dev / null 2 & amp; -; затем ssh-add ~ / .ssh / id_dsa fi / usr / bin / ssh "$ @"} export -f ssh # другой пример: git git () {if! ssh-add -l & gt; / dev / null 2 & amp; -; затем ssh-add ~ / .ssh / id_dsa fi / usr / bin / git "$ @"} export -f git
изменить имя файла ~ / .ssh / id_dsa
, следуя вашим потребностям, и добавьте эту строку в ~ / .bash_logout
# материал для добавления в конце ~ / .bash_logout, если ((agent_started) ); затем echo «ssh-agent Killing ssh» -k fi
Последнее примечание: это не мешает сеансу gnome, потому что в этом случае только ~ / .profile [ ! d6], и вы можете воспользоваться графическим интерфейсом
ssh-askpass
, который запрашивает кодовую фразу и отправляет ее в ssh-agent
.
Даже если агент встал, если определенные переменные среды не установлены, у вас нет ссылки на агента. Кроме того, даже если все в порядке, агент и переменные, идентификатор автоматически не отправляется агенту: это задача для ssh-askpass
, работающая только в X сеансах.
Если вы используете bash, создайте файл ~ / .bash_profile
с этим контентом:
# Файл: ~ / .bash_profile # source ~ / .profile, if доступно, если [[-r ~ / .profile]]; тогда . ~ / .profile fi # запускать агент и устанавливать переменные среды, если необходимо agent_started = 0 if! env | grep -q SSH_AGENT_PID & gt; / dev / null; затем echo «Starting ssh agent» eval $ (ssh-agent -s) agent_started = 1 fi # ssh становится функцией, добавляя при необходимости идентификатор к агенту ssh () {if! ssh-add -l & gt; / dev / null 2 & amp; -; затем ssh-add ~ / .ssh / id_dsa fi / usr / bin / ssh "$ @"} export -f ssh # другой пример: git git () {if! ssh-add -l & gt; / dev / null 2 & amp; -; затем ssh-add ~ / .ssh / id_dsa fi / usr / bin / git "$ @"} export -f git
изменить имя файла ~ / .ssh / id_dsa
, следуя вашим потребностям, и добавьте эту строку в ~ / .bash_logout
# материал для добавления в конце ~ / .bash_logout, если ((agent_started) ); затем echo «ssh-agent Killing ssh» -k fi
Последнее примечание: это не мешает сеансу gnome, потому что в этом случае только ~ / .profile [ ! d6], и вы можете воспользоваться графическим интерфейсом
ssh-askpass
, который запрашивает кодовую фразу и отправляет ее в ssh-agent
.
Даже если агент встал, если определенные переменные среды не установлены, у вас нет ссылки на агента. Кроме того, даже если все в порядке, агент и переменные, идентификатор автоматически не отправляется агенту: это задача для ssh-askpass
, работающая только в X сеансах.
Если вы используете bash, создайте файл ~ / .bash_profile
с этим контентом:
# Файл: ~ / .bash_profile # source ~ / .profile, if доступно, если [[-r ~ / .profile]]; тогда . ~ / .profile fi # запускать агент и устанавливать переменные среды, если необходимо agent_started = 0 if! env | grep -q SSH_AGENT_PID & gt; / dev / null; затем echo «Starting ssh agent» eval $ (ssh-agent -s) agent_started = 1 fi # ssh становится функцией, добавляя при необходимости идентификатор к агенту ssh () {if! ssh-add -l & gt; / dev / null 2 & amp; -; затем ssh-add ~ / .ssh / id_dsa fi / usr / bin / ssh "$ @"} export -f ssh # другой пример: git git () {if! ssh-add -l & gt; / dev / null 2 & amp; -; затем ssh-add ~ / .ssh / id_dsa fi / usr / bin / git "$ @"} export -f git
изменить имя файла ~ / .ssh / id_dsa
, следуя вашим потребностям, и добавьте эту строку в ~ / .bash_logout
# материал для добавления в конце ~ / .bash_logout, если ((agent_started) ); затем echo «ssh-agent Killing ssh» -k fi
Последнее примечание: это не мешает сеансу gnome, потому что в этом случае только ~ / .profile [ ! d6], и вы можете воспользоваться графическим интерфейсом
ssh-askpass
, который запрашивает кодовую фразу и отправляет ее в ssh-agent
.
ssh
в других машинах. Но при использовании git
при нажатии или отключении публичного репозитория это не происходит. У вас есть идеи, как я мог бы это решить?
– Treffynnon
26 April 2011 в 14:43
ssh ()
, назовите ее git ()
и измените последнюю строку из / usr / bin / ssh
на / USR / бен / мерзавец
. Также добавьте окончательную строку с export -f git
.
– enzotib
26 April 2011 в 15:15
ssh
в машину с файлом bash_profile
, который вы создали выше, он запрашивает у меня пароль для ключа. По какой-то причине каждый раз, когда я ssh в нем спрашивает, даже до того, как я выполнил ssh
или git
. См. [D0] gist.github.com/942082 для подсказки, которую я возвращаю, когда я вхожу в систему на оскорбительной машине.
– Treffynnon
26 April 2011 в 15:25
git
взаимодействует с ssh
, и я не использую git
, так что я не могу попробовать. Я изменил файл ~ / .bash_profile
, включив функцию git ()
, упомянутую выше, чтобы убедиться, что мое предыдущее объяснение было ясным. Кроме того, из вывода вы видите, что вы модифицировали серверную машину, но все мои советы были направлены только на клиентскую машину.
– enzotib
26 April 2011 в 15:42
git
нажимает на центральную кузницу / репозиторий, поэтому файл находится в нужном месте. Я думаю, вы только что дали мне подсказку / пробежали мои мысли. У меня есть специальное приглашение bash, которое отображает ветвь git для pwd
. Бьюсь об заклад, это то, что запускает запрос пароля при входе в bash, когда он пытается выполнить git stat перед отображением подсказки bash!
– Treffynnon
26 April 2011 в 15:49
Недавно я начал использовать ssh-ident:
https://github.com/ccontavalli/ssh-ident
все, что вам нужно сделать, это добавить что-то вроде:
alias ssh="/path/to/ssh-ident"
в вашем .bashrc. Кроме того, вы можете ln -s /path/to/ssh-ident ~/bin/ssh или какой-либо другой каталог в вашем PATH до /bin и /usr/bin.
Этот вопрос имеет неплохой ответ на SuperUser.
Я нашел SuperUser довольно полезным.
Этот вопрос имеет неплохой ответ на SuperUser.
Я нашел SuperUser довольно полезным.
Недавно я начал использовать ssh-ident:
https://github.com/ccontavalli/ssh-ident
все, что вам нужно сделать, это добавить что-то вроде:
alias ssh="/path/to/ssh-ident"
в вашем .bashrc. Кроме того, вы можете ln -s /path/to/ssh-ident ~/bin/ssh или какой-либо другой каталог в вашем PATH до /bin и /usr/bin.
Этот вопрос имеет неплохой ответ на SuperUser.
Я нашел SuperUser довольно полезным.
Недавно я начал использовать ssh-ident:
https://github.com/ccontavalli/ssh-ident
все, что вам нужно сделать, это добавить что-то вроде:
alias ssh="/path/to/ssh-ident"
в вашем .bashrc. Кроме того, вы можете ln -s /path/to/ssh-ident ~/bin/ssh или какой-либо другой каталог в вашем PATH до /bin и /usr/bin.
Этот вопрос имеет неплохой ответ на SuperUser.
Я нашел SuperUser довольно полезным.
Недавно я начал использовать ssh-ident:
https://github.com/ccontavalli/ssh-ident
все, что вам нужно сделать, это добавить что-то вроде:
alias ssh="/path/to/ssh-ident"
в вашем .bashrc. Кроме того, вы можете ln -s /path/to/ssh-ident ~/bin/ssh или какой-либо другой каталог в вашем PATH до /bin и /usr/bin.
Этот вопрос имеет неплохой ответ на SuperUser.
Я нашел SuperUser довольно полезным.
Недавно я начал использовать ssh-ident:
https://github.com/ccontavalli/ssh-ident
все, что вам нужно сделать, это добавить что-то вроде:
alias ssh="/path/to/ssh-ident"
в вашем .bashrc. Кроме того, вы можете ln -s /path/to/ssh-ident ~/bin/ssh или какой-либо другой каталог в вашем PATH до /bin и /usr/bin.
Этот вопрос имеет неплохой ответ на SuperUser.
Я нашел SuperUser довольно полезным.
Недавно я начал использовать ssh-ident:
https://github.com/ccontavalli/ssh-ident
все, что вам нужно сделать, это добавить что-то вроде:
alias ssh="/path/to/ssh-ident"
в вашем .bashrc. Кроме того, вы можете ln -s /path/to/ssh-ident ~/bin/ssh или какой-либо другой каталог в вашем PATH до /bin и /usr/bin.
Этот вопрос имеет неплохой ответ на SuperUser.
Я нашел SuperUser довольно полезным.
Недавно я начал использовать ssh-ident:
https://github.com/ccontavalli/ssh-ident
все, что вам нужно сделать, это добавить что-то вроде:
alias ssh="/path/to/ssh-ident"
в вашем .bashrc. Кроме того, вы можете ln -s /path/to/ssh-ident ~/bin/ssh или какой-либо другой каталог в вашем PATH до /bin и /usr/bin.
Недавно я начал использовать ssh-ident:
https://github.com/ccontavalli/ssh-ident
все, что вам нужно сделать добавляет что-то вроде:
alias ssh = "/ path / to / ssh-ident"
в вашем .bashrc
, Кроме того, вы можете ln -s / path / to / ssh-ident ~ / bin / ssh
или какой-либо другой каталог в вашем PATH до / bin
и / usr /bin
.
Этот вопрос имеет неплохой ответ в SuperUser .
Недавно я начал использовать ssh-ident:
https://github.com/ccontavalli/ssh-ident
все, что вам нужно сделать добавляет что-то вроде:
alias ssh = "/ path / to / ssh-ident"
в вашем .bashrc
, Кроме того, вы можете ln -s / path / to / ssh-ident ~ / bin / ssh
или какой-либо другой каталог в вашем PATH до / bin
и / usr /bin
.
Этот вопрос имеет неплохой ответ в SuperUser .
Недавно я начал использовать ssh-ident:
https://github.com/ccontavalli/ssh-ident
все, что вам нужно сделать добавляет что-то вроде:
alias ssh = "/ path / to / ssh-ident"
в вашем .bashrc
, Кроме того, вы можете ln -s / path / to / ssh-ident ~ / bin / ssh
или какой-либо другой каталог в вашем PATH до / bin
и / usr /bin
.