Как я могу добавить идентификатор для SSH?

Мне нужно запускать ssh-add <key> каждый раз, когда мне нужно ssh в веб-сервер. Есть ли способ постоянного добавления идентификатора, поэтому мне не нужно добавлять идентификаторы при каждом входе в систему?

РЕДАКТИРОВАТЬ: ключ представляет собой файл pem, который я скачал из облачной службы.

37
задан 12 January 2014 в 00:34

8 ответов

Если ваш ключ не содержит пароля и назван в качестве одного из файлов, которые ssh будет пытаться найти при идентификации (~/.ssh/id_dsa или ~/.ssh/id_rsa), вам не нужно добавлять его в свой агент.

НО. Если есть малейшая возможность кражи этих файлов, вы бы просто позволили любому получить доступ к серверам, на которых вы используете эту личность. Короче говоря, забили.

ИМХО, закрытые ключи без пароля - плохая практика, и их следует использовать только в средах, где ~/.ssh/authorized_keys очень ограничено.

0
ответ дан 12 January 2014 в 00:34

Создайте свой ключ, как обычно: ssh-keygen, затем поместите этот ключ на удаленный сервер с помощью ssh-copy-id, который синхронизирует его с принятыми ключами удаленного сервера.

ssh-keygen
ssh-copy-id user@host

Он запросит ваш пароль, затем выполнит все шаги, необходимые для связывания вашего ключа .pub с удаленным сервером SSH.

По умолчанию он скопирует все ваши ключи .pub на удаленный сервер. Если вы только что создали свой ключ с помощью ssh-keygen, то это не проблема (потому что у вас есть только один!). Однако, если у вас есть несколько ключей, вы можете скопировать только определенный ключ с флагом -i.

ssh-copy-id -i ~.ssh/key_name.pub user@host

Замена key_name.pub на имя ключа.

0
ответ дан 12 January 2014 в 00:34

Вы можете сгенерировать ключ ssh с помощью команды:

ssh-keygen

Затем вы можете скопировать ключ на сервер с помощью:

ssh serveruser@servername "echo `cat ~/.ssh/id_dsa.pub` >> ~/.ssh/authorized_keys" 

Теперь вы можете автоматически войти в свой веб-сервер

0
ответ дан 12 January 2014 в 00:34

Напишите короткий скрипт оболочки, который запустит ssh-add, а затем подключится, например, следующим образом:

ssh-add ~/.ssh/your-key
ssh user@remotehost

Затем вы можете подключиться к вашему хосту с помощью одной команды.

0
ответ дан 12 January 2014 в 00:34

вставьте это в свой ~/.bashrc

eval $(ssh-agent)
ssh-add ~/.ssh/where_ever_privake_key_is 
0
ответ дан 12 January 2014 в 00:34
 ssh serveruser@servername "cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys" 
0
ответ дан 12 January 2014 в 00:34

Вы говорите об Amazon Cloud? В вашем ~ / .bashrc создайте переменные окружения:

# Amazon
export EC2_PRIVATE_KEY=$HOME/Keys/pk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pem
export EC2_CERT=$HOME/Keys/cert-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pem
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk/
0
ответ дан 12 January 2014 в 00:34

Для AWS загрузите pem ключ и работайте:

ssh-add /path/to/pemfile.pem

Это работало на меня, человечность 18.04. Источник, Ничто иное не было необходимо.

NB: Однако важно установить полномочия на 400 прежде, чем сделать это.

chmod 400 /path/to/pemfile.pem

Если не Вы получите ошибку:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @
ПРЕДУПРЕЖДЕНИЕ: НЕЗАЩИЩЕННЫЙ ФАЙЛ СЕКРЕТНЫХ КЛЮЧЕЙ! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Полномочия 0664 для '/home/toing_toing/blablabla.pem' слишком открыты. Требуется, что Ваши файлы секретных ключей не доступны другими. Этот закрытый ключ будет проигнорирован.

1
ответ дан 23 November 2019 в 00:17

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

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