Вы можете войти на удаленный сервер Linux без ввода пароля в 3 простых шага, используя ssky-keygen и ssh-copy-id, как описано в этой статье.
ssh-keygen создает открытый и закрытый ключи. ssh-copy-id копирует открытый ключ локального хоста в файл authorized_keys удаленного хоста. ssh-copy-id также назначает правильное разрешение для дома удаленного хоста, ~/.ssh и ~/.ssh/authorized_keys.
В этой статье также рассказывается о 3 небольших неудобствах при использовании ssh-copy-id и о том, как использовать ssh-copy-id вместе с ssh-agent.
[email protected]$ [Note: You are on local-host here] [email protected]$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):[Enter key] Enter passphrase (empty for no passphrase): [Press enter key] Enter same passphrase again: [Pess enter key] Your identification has been saved in /home/jsmith/.ssh/id_rsa. Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub. The key fingerprint is: 33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9 [email protected]
[email protected]$ ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host [email protected]'s password: Now try logging into the machine, with "ssh 'remote-host'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
Примечание: ssh-copy-id добавляет ключи к .ssh/authorized_keys удаленного хоста.
[email protected]$ ssh remote-host Last login: Sun Nov 16 17:22:33 2008 from 192.168.1.2 [Note: SSH did not ask for password.] [email protected]$ [Note: You are on remote-host here]
Вышеупомянутые 3 простых шага должны выполнить работу в большинстве случаев. Использование ssh-copy-id вместе с ssh-add / ssh-agent
Если для опции -i не передано значение и если ~/.ssh/identity.pub недоступно, ssh-copy-id отобразит следующее сообщение об ошибке.
[email protected]$ ssh-copy-id -i remote-host /usr/bin/ssh-copy-id: ERROR: No identities found
Если вы загрузили ключи в ssh-agent с помощью ssh-add , то ssh-copy-id получит ключи от ssh-agent для копирования на удаленный хост. то есть он копирует ключи, предоставленные командой ssh-add -L, на удаленный хост, когда вы не передаете опцию -i в ssh-copy-id .
[email protected]$ ssh-agent $SHELL [email protected]$ ssh-add -L The agent has no identities. [email protected]$ ssh-add Identity added: /home/jsmith/.ssh/id_rsa (/home/jsmith/.ssh/id_rsa) [email protected]$ ssh-add -L ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsJIEILxftj8aSxMa3d8t6JvM79DyBV aHrtPhTYpq7kIEMUNzApnyxsHpH1tQ/Ow== /home/jsmith/.ssh/id_rsa [email protected]$ ssh-copy-id -i remote-host [email protected]'s password: Now try logging into the machine, with "ssh 'remote-host'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting. [Note: This has added the key displayed by ssh-add -L]
Ниже приведено несколько мелких неприятностей с ssh-copy-id.
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies