мне нужно сделать логин без пароля для того же сервера Linux с тем же пользователем [дубликат]

На этот вопрос уже есть ответ здесь:

Мне нужно сделать беспарольный вход на тот же сервер Linux с тем же пользователем.

[airwide@eir ~]$ hostname -i
10.3.7.73
[airwide@eir ~]$ ssh airwide@10.3.7.73
airwide@10.3.7.73's password: 

как сделать беспарольным для одного и того же сервера?

-1
задан 14 August 2014 в 16:46
4 ответа

Легко. Просто создайте SSH-ключ без пароля в своей системе вот так. Ниже приведен пример установки локальной песочницы, которую я использую Ubunbtu 12.04, но она должна хорошо работать для большинства современных установок Linux / Unix.

Сначала создайте ключ:

ssh-keygen -t rsa

Затем вы получите следующие запросы. Просто нажмите Введите (без другого набора текста) для каждого элемента:

Enter file in which to save the key (/home/myuser/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again:

После этого вы должны увидеть что-то вроде этого на экране. Это означает, что ключ был создан:

Your identification has been saved in /home/myuser/.ssh/id_rsa.
Your public key has been saved in /home/myuser/.ssh/id_rsa.pub.
The key fingerprint is:
ab:12:cd:34:ef:56:gh:78:ij:90:kl:12:mn:34:op:56 myuser@my_host
The key's randomart image is:
+--[ RSA 2048]----+
|    . ==*o       |
|     o =++       |
|      +.+        |
|     . +         |
|  . o . S        |
| o o .          |
|o E              |
|+  .            |
|=+.             |
+-----------------+

Теперь скопируйте содержимое ~ / .ssh / id_rsa.pub в authorized_keys :

nano ~/.ssh/authorized_keys

Просто поместите содержимое ~ / .ssh / id_rsa.pub внизу ~ / .ssh / authorized_keys . Если у вас еще нет файла authorized_keys , вы создадите его с помощью этой команды nano , поэтому вы должны установить соответствующие права доступа к файлу - 600` иначе владелец / пользователь читает & только запись - чтобы SSH не подавился этим, вот так:

chmod 600 ~/.ssh/authorized_keys

Теперь, когда это сделано, вы почти закончили. На последнем этапе вы просто входите в систему на своей машине, и вам будет представлено предупреждение «известные хосты» примерно следующего вида:

The authenticity of host 'my_host(123.456.78.90)' can't be established.
ECDSA key fingerprint is ab:12:cd:34:ef:56:gh:78:ij:90:kl:12:mn:34:op:56.
Are you sure you want to continue connecting (yes/no)? yes

Просто ответьте да , и тогда вы получите такое сообщение:

Warning: Permanently added 'my_host,123.456.78.90' (ECDSA) to the list of known hosts.

И теперь все готово. Любой SSH-вход, который вы сделаете на этом компьютере, будет на 100% без пароля.

Если вы хотите отладить соединение, обязательно используйте параметр -v (подробный), например:

ssh -v myuser@my_host

Если все работает хорошо, вы получите подробный - но чистый - вывод вроде этого:

OpenSSH_5.9p1 Debian-5ubuntu1.4, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to my_host [123.456.78.90] port 22.
debug1: Connection established.
debug1: identity file /home/myuser/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: identity file /home/myuser/.ssh/id_rsa-cert type -1
debug1: identity file /home/myuser/.ssh/id_dsa type -1
debug1: identity file /home/myuser/.ssh/id_dsa-cert type -1
debug1: identity file /home/myuser/.ssh/id_ecdsa type -1
debug1: identity file /home/myuser/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1.4
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1.4 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.4
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA ab:12:cd:34:ef:56:gh:78:ij:90:kl:12:mn:34:op:56
debug1: Host 'my_host' is known and matches the ECDSA host key.
debug1: Found key in /home/myuser/.ssh/known_hosts:3
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/myuser/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
Authenticated to my_host  ([123.456.78.90]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
Welcome to Ubuntu 12.04.5 LTS (GNU/Linux 3.13.0-34-generic x86_64)

А если это не сработает, просто посмотрите на вывод отладки и посмотрите, где что-то мешает отладке.

3
ответ дан 5 December 2019 в 19:00

Создайте пару открытый / закрытый ключ аутентификации rsa, используя:

ssh-keygen

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

тогда взять содержимое открытого ключа и поместить его в файл .ssh / authorized_keys на стороне сервера. Вы можете передать по ftp ключ pub в каталог .ssh пользователей сервера.

cat ~/.ssh/your_id_rsa.pub >> ~/.ssh/authorized_keys

Теперь вы можете использовать ssh (скрытый) без запроса пароля / парольной фразы. Если у вас есть какие-либо проблемы, проверьте права доступа к файлам в .ssh - публичные файлы должны быть 644, частные файлы должны быть 600, каталог должен быть 644 (я думаю). Погуглите это, чтобы убедиться. Обычно, если вы используете ssh-keygen, он правильно устанавливает права доступа.

3
ответ дан 5 December 2019 в 19:00

для этого вам нужно добавить ключи ssh pub к авторизованным ключам. Самый простой способ - это

ssh-copy-id root@myhost1

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

0
ответ дан 5 December 2019 в 19:00

Вам необходимо настроить аутентификацию с открытым ключом ssh , а затем заставить ssh использовать только ключи для аутентификации .

В целях безопасности я бы сделал это отговаривают вас полностью отключать пароли и аутентификацию.

ПРИМЕЧАНИЕ: Вам не нужно отключать аутентификацию по паролю, если вы этого не хотите, аутентификация с открытым ключом все равно будет работать. Но это просто хорошая практика, если у вас есть общедоступный обслуживающий сервер.

Оператор
0
ответ дан 5 December 2019 в 19:00

Теги

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