Как установить связь между двумя компьютерами с помощью ssh-keygen

Я использую x11vnc для подобного результата: ssh remotehost (экспорт ОТОБРАЖАЮТСЯ =:0; x11vnc - совместно использованный - навсегда-usepw-ncache 10)

Вы получаете идею. надеюсь, что это помогает.

0
задан 11 October 2009 в 02:48
4 ответа

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

Шаг 1 - Генерирует пару ключей на локальном

> ssh-keygen -t dsa

Эта команда создаст id_dsa и id_dsa.pub в Вашей домашней папке, т.е. ~/.ssh/id_dsa и ~/.ssh/id_dsa.pub

Шаг 2 - Добавляет открытый ключ к authorized_keys файлу на машине, с которой Вы хотите соединиться.

  1. скопируйте содержание ~/.ssh/id_dsa.pub на локальном для Вашего буфера обмена
  2. откройте ssh сессию для удаленного

локальный> ssh user@remote

  1. откройте authorized_keys файл для редактирования, создав, если это не существует

удаленный> vi ~/.ssh/authorized_keys

  1. Если файл пуст, нажмите, я затем вставляю Ваше содержание буфера обмена в файл. Если файл имеет использование записей клавиши со стрелками для навигации к нижней части, то нажмите i и вставьте содержание буфера обмена.
  2. сохраните файл путем ввода: wq
  3. измените полномочия на authorized_keys файле

    удаленный> chmod 600 ~/.ssh/authorized_keys

Необходимо теперь смочь соединиться с удаленной машиной с помощью ключа.

local> ssh user@remote
4
ответ дан 4 December 2019 в 12:12
  • 1
    Используйте ssh-copy-id для копирования ключа на удаленной машине вместо скопировать/вставить –  sebthebert 11 October 2009 в 00:48
  • 2
    я соглашаюсь с sebthebert –  Ali Mezgani 11 October 2009 в 04:12
  • 3
    Работы ssh-copy-id отлично и решают мою проблему!!Спасибо –  Libyano 13 October 2009 в 11:21

Так как это - такая общая задача, я создал сценарий оболочки для обработки ее для меня. Это создаст локальную пару ключей SSH, если она не будет уже существовать, затем скопирует его в удаленную машину.

#!/bin/bash

keytype="rsa"
while getopts "t:" opt; do
    case $opt in
        "t")
            keytype=$OPTARG;;
    esac
done
shift $(($OPTIND - 1))

if [[ $# != 1 ]]; then
    echo "Usage: $0 [-t rsa|dsa] [user]@host"
    exit
fi

KEYFILE=~/.ssh/id_$keytype
AUTHFILE=.ssh/authorized_keys

if [[ ! -e $KEYFILE ]]; then
    echo "Creating key..."
    ssh-keygen -t $keytype -f $KEYFILE
fi
if [[ -e $KEYFILE ]]; then
    echo "Logging in..."
    ssh $1 "[[ -d .ssh ]] || mkdir .ssh && [[ -e $AUTHFILE ]] || touch $AUTHFILE && chmod 0600 $AUTHFILE && cat - >> $AUTHFILE" < $KEYFILE.pub
fi

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

0
ответ дан 4 December 2019 в 12:12

Когда Вы хотите использовать ssh с ключами, первой вещью, в которой Вы будете нуждаться, является ключ.
создание ключа с помощью dsa шифрование (или замена dsa rsa для шифрования RSA)


$ ssh-keygen -t dsa
При просьбе относительно "пароля" мы не введем тот. Просто нажмите Enter дважды. ssh-keygen программа теперь генерирует и Вашу общественность и Ваш закрытый ключ, по умолчанию, Ваши ключи хранятся в .ssh/каталоге в Вашем корневом каталоге.

Чтобы смочь войти в систему удаленных систем с помощью пары ключей, необходимо будет сначала добавить открытый ключ на удаленном сервере в authorized_keys файл файла в .ssh/каталоге в корневом каталоге на удаленной машине.


$ cd ~/.ssh; scp id_dsa.pub username@target:./id_dsa.pub
$ ssh username@target 
$ mkdir ~/.ssh; chmod 700 ~/.ssh
$ cat id_dsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ rm -fr id_dsa.pub
Вы можете теперь ssh в учетную запись удаленных систем без использования пароля.
0
ответ дан 4 December 2019 в 12:12

Если не с помощью порта 22 для ssh, измените эту строку: дюйм ssh за 1$ [[-d .ssh]]... к ssh '-p 3433' дюйм за 1$ [[-d .ssh]]... (заменяют 3433 Ваш ssh идентификатор порта),

Большой сценарий!

С наилучшими пожеланиями, py

0
ответ дан 4 December 2019 в 12:12

Теги

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