Самый простой способ скопировать ключи ssh на другую машину?

По какой-то причине я не смог получить принятый ответ на работу, поэтому я написал небольшой скрипт Greasemonkey для достижения такого же эффекта: https://gist.github.com/einarmagnus/d741e30ad13b051d7971

// ==UserScript==
// @name        bright forms
// @namespace   einar
// @description Make all form elements default to light style to combat gtk theme
// @include     *
// @version     1
// @grant       none
// ==/UserScript==
function addDefaultCssRules(rule) {
  var styleElement = document.createElement('style');
  styleElement.type = 'text/css';
  document.head.insertBefore(styleElement, document.head.firstChild);
  styleElement.sheet.insertRule(rule, 0);
}
addDefaultCssRules('input, button, textarea, select { background-color:#fff;border-radius:5px;color:#111 }');

Это сработало для меня.

1
задан 12 April 2017 в 10:23

4 ответа

Мне нравится ответ от Марселя. Я не знал этой команды. Я всегда использовал то, что я нашел на веб-сайте SUN:

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'cat >> .ssh/authorized_keys && echo "Key copied"'

Я думал разместить его здесь еще, потому что это хорошая иллюстрация того, что может быть достигнуто в коде оболочки с помощью мощность ssh. Но использование ssh-copy-id является, безусловно, более безопасным способом сделать это правильно!

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

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'umask 0077; mkdir -p .ssh; cat >> .ssh/authorized_keys && echo "Key copied"'
109
ответ дан 26 May 2018 в 01:15
  • 1
    Эти точные команды также работают с Mac – Mihai P. 20 February 2015 в 08:09
  • 2
    Он должен работать под любым Unix с большинством оболочек. Я обновляю сообщение с обновленной командой, если папка .ssh не существует на удаленной стороне. – Huygens 1 March 2015 в 18:54
  • 3
    [F1] не требуется - нормальное перенаправление ввода достаточно, например. [F2] – maxschlepzig 18 March 2016 в 02:44
  • 4
    @Huygens Спасибо. Полезнее помнить об этом, потому что вам не нужно ничего устанавливать, и это также может быть полезно для выполнения иностранных команд, например. изменяя разрешения на стороне сервера, как вы продемонстрировали в своем расширенном примере. – Jonathan Komar 21 March 2016 в 17:15
  • 5
    Я очень предпочитаю этот путь, так как он позволяет использовать многословный ssh, который полезен при определении того, почему вещи сломаны. sshcopyid просто застыл и никогда не работал, все прошло отлично. – Sirens 30 May 2017 в 02:03

Графический метод

Открытые приложения ▸ Пароли и ключи ▸ Мои личные клавиши. Выберите свой ключ и нажмите «Удаленный» → «Настроить ключ для безопасной оболочки».

23
ответ дан 26 May 2018 в 01:15
  • 1
    У меня нет " Пароли и ключи шифрования " в моем меню. – Jorge Castro 28 September 2010 в 01:33
  • 2
    Какой выпуск Ubuntu вы используете? В Ubuntu 10.04 LTS это должно быть доступно по умолчанию. – ændrük 28 September 2010 в 01:46
  • 3
    10.10, просто добавил тег. Ответ Марселя - это то, что я ищу, хотя +1 для вашего рабочего стола. – Jorge Castro 28 September 2010 в 02:04
  • 4
    Эта программа seahorse. – Gilles 28 September 2010 в 02:12
  • 5
    Я думаю, что это приложение находится в меню System- & gt; Preferences в 10.10 (не могу проверить его прямо сейчас, я на 10.04) – Huygens 12 October 2010 в 03:07

На Ubuntu вы можете получить свои ключи с Launchpad:

ssh-import-id [launchpad account name]

Подробности:

Вам нужна учетная запись Launchpad, чтобы войти в систему или создать учетную запись. После входа в систему нажмите кнопку рядом с SSH-ключами: Вставьте содержимое вашего файла открытого ключа в это поле (включая комментарий). Такой ключ выглядит следующим образом:
ssh-rsa AAAAB3Nza .... UyDOFDqJp lekensteyn
Здесь ssh-rsa указывает, что ключ является RSA-ключом, AAAAB3Nza .... UyDOFDqJp является фактическим ключом, а lekensteyn является комментарием. Сохраните ключ, нажав Импорт открытого ключа. Если все пошло хорошо, ваш ключ теперь должен быть указан под ключами SSH:

Пакет ssh-import-id должен быть установлен на машине, к которой необходимо получить доступ с удаленного устройства. Этот пакет устанавливается вместе с пакетом openssh-server, так как это рекомендуемый пакет для openssh-server. Убедившись, что на компьютере-клиенте установлен ssh-import-id, запустите:

ssh-import-id [launchpad account name]

. Это загрузит открытый ключ с серверов Launchpad через HTTPS, который защитит вас от атак MITM.

На Ubuntu Lucid и раньше вы можете сделать то же самое:

wget https://launchpad.net/~[lp acount name]/+sshkeys -O - >> ~/.ssh/authorized_keys && echo >> ~/.ssh/authorized_keys

Команда echo необходима, чтобы получить дополнительную строку перевода строки после строки с ключом SSH.

Страница руководства ssh-import-id
18
ответ дан 26 May 2018 в 01:15

для пользовательского порта

ssh-copy-id -i "user@hostname.example.com -p2222"

-i по умолчанию установлен на ~ / .ssh / id_rsa.pub, если вы хотите другой ключ, введите путь ключа после -i

ПРЕДУПРЕЖДЕНИЕ. Если вы не пишете -i, он скопирует все ваши ключи, найденные в ~ / .ssh

12
ответ дан 26 May 2018 в 01:15
  • 1
    Вы уверены, что это ПРЕДУПРЕЖДЕНИЕ? "-i identity_file - Использовать только ключ (ы), содержащийся в файле identity_file (вместо поиска идентификаторов через ssh-add (1) или в файле default_ID_file). Если имя файла не заканчивается на .pub, это добавляется. Если имя файла опущено, используется файл default_ID_. & Quot; – Yousha Aleayoub 22 April 2015 в 23:37

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

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