Конфигурирование Мерзавца по SSH для входа в систему однажды

Я не думаю, что необходимо наказать его. Просто заставьте его понимать, как сделать точные оценки.

Как руководитель группы я сделал, чтобы мои члены команды сказали мне, что это не будет "без проблем" для окончания X функций к крайнему сроку. Тогда я обычно сажусь с ними и пробегаюсь через то, какие задачи и подзадачи я думаю, что потребность сделана для функции, которая будет закончена, и сколько времени разработчик думает, что каждый возьмет.

После того, как мы делаем это осуществление, и складывать всю задачу и оценки подзадачи, это неизбежно возьмет намного дольше, чем разработчик думает в их первоначальной оценке. Я обычно только должен сделать это осуществление с ними несколько раз, прежде чем они начнут делать более точные оценки.

188
задан pbonnefoi 29 January 2015 в 05:36
поделиться

3 ответа

Try ssh-add, you need ssh-agent to be running and holding your private key

(Ok, responding to the updated question, you first run ssh-keygen to generate a public and private key as Jefromi explained. You put the public key on the server. You should use a passphrase, if you don't you have the equivalent of a plain-text password in your private key. But when you do, then you need as a practical matter ssh-agent as explained below.)

You want to be running ssh-agent in the background as you log in. Once you log in, the idea is to run ssh-add once and only once, in order to give the agent your passphrase, to decode your key. The agent then just sits in memory with your key unlocked and loaded, ready to use every time you ssh somewhere.

All ssh-family commands1 will then consult the agent and automatically be able to use your private key.

On OSX (err, macOS), GNOME and KDE systems, ssh-agent is usually launched automatically for you. I will go through the details in case, like me, you also have a Cygwin or other windows environment where this most certainly is not done for you.

Start here: man ssh-agent.

There are various ways to automatically run the agent. As the man page explains, you can run it so that it is a parent of all your login session's other processes. That way, the environment variables it provides will automatically be in all your shells. When you (later) invoke ssh-add or ssh both will have access to the agent because they all have the environment variables with magic socket pathnames or whatever.

Alternatively, you can run the agent as an ordinary child, save the environment settings in a file, and source that file in every shell when it starts.

My OSX and Ubuntu systems automatically do the agent launch setup, so all I have to do is run ssh-add once. Try running ssh-add and see if it works, if so, then you just need to do that once per reboot.

My Cygwin system needed it done manually, so I did this in my .profile and I have .bashrc source .profile:

. .agent > /dev/null
ps -p $SSH_AGENT_PID | grep ssh-agent > /dev/null || {
        ssh-agent > .agent
        . .agent > /dev/null
}

The .agent file is created automatically by the script; it contains the environment variables definitions and exports. The above tries to source the .agent file, and then tries to ps(1) the agent. If it doesn't work it starts an agent and creates a new agent file. You can also just run ssh-add and if it fails start an agent.


1. And even local and remote sudo with the right pam extension.
100
ответ дан 23 November 2019 в 05:42
поделиться

Речь идет о настройке ssh, а не git. Если вы еще этого не сделали, вы должны использовать ssh-keygen (с пустой кодовой фразой) для создания пары ключей. Затем вы копируете открытый ключ в удаленное место назначения с помощью ssh-copy-id . Если вам не нужно несколько ключей (например, более безопасный ключ с парольной фразой для других целей) или у вас есть действительно странные вещи с множественной идентификацией, это просто:

ssh-keygen   # enter a few times to accept defaults
ssh-copy-id -i ~/.ssh/id_rsa user@host

Изменить: You should really just read DigitalRoss's answer, but: if you use keys with passphrases, you'll need to use ssh-add to add them to ssh-agent (and obviously start up an ssh-agent if your distribution doesn't already have one running for you).

23
ответ дан 23 November 2019 в 05:42
поделиться

Я думаю, здесь есть две разные вещи. Во-первых, обычная аутентификация SSH требует, чтобы пользователь ввел пароль учетной записи (при этом пароль учетной записи будет аутентифицироваться различными методами, в зависимости от конфигурации sshd).

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

Для этого вы можете следовать инструкциям, указанным steveth45:

С помощью Аутентификация с открытым ключом .

Если вы не хотите каждый раз вводить пароль сертификата, вы можете использовать ssh-agent, как указано DigitalRoss

. Точный способ, которым вы это делаете, зависит от Unix и Windows , но по сути вам нужно запустить ssh-agent в фоновом режиме при входе в систему, а затем при первом входе в систему запустите ssh-add, чтобы передать агенту вашу кодовую фразу. После этого все команды ssh-family будут обращаться к агенту и автоматически подбирают вашу парольную фразу.

Начните здесь: man ssh-agent.

Единственная проблема ssh-agent заключается в том, что, по крайней мере, на * nix вам нужно поместите пароль сертификата в каждую новую оболочку. Затем сертификат «загружается», и вы можете использовать его для аутентификации на ssh-сервере без ввода какого-либо пароля. Но это в этой конкретной оболочке.

С помощью связки ключей вы можете делать то же самое, что и ssh-agent, но «в масштабе всей системы». После включения компьютера вы открываете оболочку и вводите пароль сертификата. А затем любая другая оболочка будет использовать этот "загруженный"

6
ответ дан 23 November 2019 в 05:42
поделиться
Другие вопросы по тегам:

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