Как к ssh к удаленному серверу с помощью закрытого ключа?

Во-первых, я не думаю, что существует строгий ответ; другой adminstrators будет иметь различные мнения, согласно их образованию. Исторически, /usr/local был на первом месте; это была конвенция в Berkley, IIRC. Однажды во время разработки System V, если я не ошибаюсь (это - все давным-давно, и я не сделал заметки), было решение или требование смочь смонтироваться /usr только для чтения, который означал, Вы не могли добавить новое программное обеспечение к нему; это, возможно, было то, почему /opt был изобретен. Как это происходит, было именно так много существующего программного обеспечения, которое действительно писало в /usr то, что та идея, никогда действительно успешно начатая.

Мое персональное предпочтение /opt, с отдельным подкаталогом для каждого продукта; это делает удаление продукта простым случаем rm -fr. Но если все Ваше программное обеспечение установлено через хороший диспетчер пакетов, не имеет значения, и если программное обеспечение, которое Вы устанавливаете, строго не повинуется этим конвенциям и пишет конфигурации и такой где-нибудь под /usr, это не имеет значения также, хотя по противоположным причинам.

80
25.10.2011, 22:24
5 ответов

Вам нужен Ваш открытый ключ SSH, и Вам будет нужен Ваш ssh закрытый ключ. Ключи могут быть сгенерированы с ssh-keygen. Закрытый ключ должен быть сохранен на Сервере 1, и открытый ключ должен быть сохранен на Сервере 2.

Это - completly, описанный в странице справочника openssh, таким образом, я заключу многое в кавычки из него. Необходимо считать раздел 'Authentication'. Также openSSH руководство должно быть действительно полезным: http://www.openssh.org/manual.html

Будьте осторожны с ssh, потому что это влияет на безопасность Вашего сервера.

От man ssh:

 ~/.ssh/identity
 ~/.ssh/id_dsa
 ~/.ssh/id_rsa
     Contains the private key for authentication.  These files contain
     sensitive data and should be readable by the user but not acces-
     sible by others (read/write/execute).  ssh will simply ignore a
     private key file if it is accessible by others.  It is possible
     to specify a passphrase when generating the key which will be
     used to encrypt the sensitive part of this file using 3DES.

 ~/.ssh/identity.pub
 ~/.ssh/id_dsa.pub
 ~/.ssh/id_rsa.pub
     Contains the public key for authentication.  These files are not
     sensitive and can (but need not) be readable by anyone.

Это означает, что можно сохранить закрытый ключ в корневом каталоге в .ssh. Другая возможность состоит в том, чтобы сказать ssh через -i переключатель параметра для использования специального файла идентификационных данных. Также от man ssh:

 -i identity_file
     Selects a file from which the identity (private key) for RSA or
     DSA authentication is read.  The default is ~/.ssh/identity for
     protocol version 1, and ~/.ssh/id_rsa and ~/.ssh/id_dsa for pro-
     tocol version 2.  Identity files may also be specified on a per-
     host basis in the configuration file.  It is possible to have
     multiple -i options (and multiple identities specified in config-
     uration files).

Это для закрытого ключа. Теперь необходимо представить открытый ключ на Сервере 2. Снова кавычка от man ssh:

  ~/.ssh/authorized_keys
         Lists the public keys (RSA/DSA) that can be used for logging in
         as this user.  The format of this file is described in the
         sshd(8) manual page.  This file is not highly sensitive, but the
         recommended permissions are read/write for the user, and not
         accessible by others.

Самый легкий путь к achive, который должен скопировать файл в Сервер 2 и добавить его в authorized_keys файл:

scp -p your_pub_key.pub user@host:
ssh user@host
host$ cat id_dsa.pub >> ~/.ssh/authorized_keys

Авторизация через открытый ключ должна быть позволена для ssh демона, видеть man ssh_config. Обычно это может быть сделано путем добавления следующего утверждения к файлу конфигурации:

PubkeyAuthentication yes
69
27.01.2020, 19:31
  • 1
    Привет спасибо за усилие, но мне только нужно это. ssh -i keyfileЧистый металл спасибо! –  Aivan Monceller 25.10.2011, 23:59
  • 2
    После генерации ключа самый легкий и рекомендуемый способ установить его на сервере с ssh-copy-id: ssh-copy-id -i ~/.ssh/foo.id_rsa remote.example.com. –  Gilles 'SO- stop being evil' 26.10.2011, 10:09
  • 3
    Интересно, как все забывают упоминать, что u должен работать ssh-add после создания ключа на компьютере Вы соединяетесь от. именно это вызывает головную боль большинству людей. –  Luka 20.09.2017, 00:49

Добавьте открытый ключ (id_[rd]sa.pub) для Вашей исходной машины (откуда Вы - sshing) до ~/.ssh/authorized_keys файл целевого сервера для имени пользователя Вы хотите к ssh в. При потере открытого ключа Вы захотите создать новый с ssh-keygen. Используя параметры по умолчанию для этого должен быть хорошо для большинства целей. При необходимости в более подробных инструкциях существуют тысячи учебных руководств, которые можно погуглить.

8
27.01.2020, 19:31

Первая вещь, которую необходимо будет сделать, удостоверяются, что Вы выполнили команду keygen для генерации ключей:

ssh-keygen -t rsa

Затем используйте эту команду для продвижения ключа к удаленному серверу, изменяя его для соответствия имени сервера.

cat ~/.ssh/id_rsa.pub | ssh user@hostname 'cat >> .ssh/authorized_keys'
18
27.01.2020, 19:31

Я использовал ssh с опцией -i, чтобы добавить сюда ваш ключ.

Если вы хотите передать аргументы arg1, arg2 с файлом .sh, просто передайте его после файла .sh и используйте пробел для его разделения.

ssh -i home / avr / new.pem (скрытый) "/var/www/beta/betatolive.sh mmin 30"

24
27.01.2020, 19:31

ssh-copy-id -- use locally available keys to authorise logins on a remote machine

Используйте ssh-copy-idна сервере 1, предполагая, что у вас есть пара ключей (, сгенерированная с помощью ssh-keygen):

.
ssh-copy-id -i ~/.ssh/id_rsa user@server2_hostname

Теперь вы сможете подключиться к серверу 2 по протоколу ssh, используя закрытый ключ

ssh -i ~/.ssh/id_rsa user@server2_hostname

Действительно, если вы отметите cat ~/.ssh/authorized_keysна сервере 2, вы увидите, что открытый ключ добавлен для вас.

8
27.01.2020, 19:31

Теги

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