Как установить пароль меньше ssh, вход в систему для нескольких удаленных разъединяет?

Machin A является моим локальным ПК.
Машина B является моим удаленным vps ПК, его IP является vps_ip1.
Машина C является другим удаленным vps ПК, его IP является vps_ip2.
Установить ssh автоматический вход в систему (без пароля) как ниже.

Шаг 1: Создайте Аутентификацию, SSH-Kegen Включает машину A

ssh-keygen -t rsa  -P ''
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):    #it is a comment ,input nothing just enter
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

Загрузка Step2 Сгенерированные Открытые ключи к машине B

scp  /root/.ssh/id_rsa.pub root@vps_ip1:/root/.ssh/authorized_keys

Полномочия Набора Step3 на машине B

ssh root@vps_ip1 "chmod 700 .ssh; chmod 640 .ssh/authorized_keys"

Теперь я могу войти в систему в машину B с командой ssh.

ssh  root@vps_ip1

Почти те же шаги для машины C.

Шаг 1: Создайте Аутентификацию, SSH-Kegen Включает машину A

ssh-keygen -t rsa  -P ''
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):/root/.ssh/myvps
Your identification has been saved in /root/.ssh/myvps.
Your public key has been saved in /root/.ssh/myvps.pub.

Загрузка Step2 Сгенерированные Открытые ключи к машине C

scp  /root/.ssh/myvps.pub root@vps_ip2:/root/.ssh/authorized_keys

Полномочия Набора Step3 на машине C

ssh root@vps_ip2 "chmod 700 .ssh; chmod 640 .ssh/authorized_keys"

Теперь я не могу войти в систему в машину C с командой ssh.

ssh  root@vps_ip2

Единственная разница между ними находится в step1, Введите файл, в котором можно сохранить ключ, это имеет значение?
Почему мой открытый ключ не может быть сохранен как/root/.ssh/myvps.pub?
В моем случае машина A имеет к ssh два удаленных сервера, таким образом, я должен назначить другой удаленный сервер другим именем.
Как зафиксировать его?

0
задан 29 December 2016 в 17:27

2 ответа

, Почему мой открытый ключ не может быть сохранен как/root/.ssh/myvps.pub?

Ваши ключи могут быть сохранены с любым именем, которое Вы хотели бы. Однако ssh клиент будет только автоматически поиск нескольких стандартных имен, id_rsa, id_dsa, id_ecdsa, или id_ed25519. Если Вы хотите сохранить его под каким-либо другим именем, необходимо указать имя файла любой на командной строке:

ssh -i ~/.ssh/myvps root@vps_ip2

или в Вашем ~/.ssh/config файл:

Host vps_ip2
    IdentityFile ~/.ssh/myvps
    User root
1
ответ дан 7 November 2019 в 06:02

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

Итак, если вы хотите соединить A-> B и A-> C с использованием SSH без пароля, вы только один раз выполните генерацию пары ключей SSH на A.

ssh-keygen -t rsa  -P ''

Это создаст ~ / .ssh / id_rsa (закрытый ключ) и ~ / .ssh / id_rsa.pub (открытый ключ) для A. Файл открытого ключа ( ~ / .ssh / id_rsa.pub ) должны быть экспортированы / скопированы в B и C.

Вы можете использовать удаленное выполнение команды через SSH или ssh-copy-id , чтобы скопировать открытый ключ в B и C.

Использование удаленного выполнения команд :

TARGETS=("vps_ip1" "vps_ip2"); PUBKEY=$(cat /root/.ssh/id_rsa.pub); for target in "${TARGETS[@]}"; do ssh "root@$target" "umask 0077; mkdir -p .ssh; echo $PUBKEY >> /root/.ssh/authorized_keys"; done;

Использование ssh-copy-id:

TARGETS=("vps_ip1" "vps_ip2"); PUBKEY=$(cat /root/.ssh/id_rsa.pub); for target in "${TARGETS[@]}"; do ssh-copy-id "root@$target"; done;

Более подробную информацию о настройке, ориентированной на несколько удаленных серверов, можно увидеть в этой статье .

1
ответ дан 19 April 2020 в 19:36

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

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