Configure ssh key — различия между версиями
Andy (обсуждение | вклад) (→Ссылки) |
Andy (обсуждение | вклад) (→Создание ключей) |
||
Строка 61: | Строка 61: | ||
Однако, при подключении к серверу <code>vm-01</code>, нас будут спрашивать пароль. Для того, что бы не вводить его каждый раз, сделаем следующее: | Однако, при подключении к серверу <code>vm-01</code>, нас будут спрашивать пароль. Для того, что бы не вводить его каждый раз, сделаем следующее: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
+ | [andy@vm-02 ~]$ eval `ssh-agent -s` | ||
+ | Agent pid 17909 | ||
[andy@vm-02 ~]$ ssh-add /home/andy/.ssh/andy | [andy@vm-02 ~]$ ssh-add /home/andy/.ssh/andy | ||
Enter passphrase for /home/andy/.ssh/andy: | Enter passphrase for /home/andy/.ssh/andy: |
Версия 11:32, 6 марта 2018
Содержание
Конфигурирование SSH. Создание ключей
Предварительные требования
- Виртуальная машина с двумя сетевыми интерфейсами
- Установленные пакеты:
bash-completion
,openssh-clients
,openssh-server
Создание ключей
Для подключения к другому хосту по ключам, необходимо их создать с нужными параметрами:
[andy@vm-02 ~]$ ssh-keygen -v -t rsa -f /home/andy/.ssh/andy -N test0987 -b 4096 -C "andy@example.com"
Generating public/private rsa key pair.
Your identification has been saved in /home/andy/.ssh/andy.
Your public key has been saved in /home/andy/.ssh/andy.pub.
The key fingerprint is:
91:cd:48:0f:da:8c:25:c4:6e:0f:55:8d:6a:cf:6e:5f andy@example.com
The key's randomart image is:
+--[ RSA 4096]----+
| oo +..o |
| .O.B. . |
| .o.*.+ |
| + o. |
| . +So |
| . o |
| . E |
| o . |
| . .. |
+-----------------+
[andy@vm-02 ~]$ ls -lahi /home/andy/.ssh/
total 8.0K
15302 drwx------. 2 andy andy 32 Feb 15 05:29 .
101350986 drwx------. 3 andy andy 90 Feb 15 05:28 ..
15303 -rw-------. 1 andy andy 3.3K Feb 15 05:29 andy
15304 -rw-r--r--. 1 andy andy 742 Feb 15 05:29 andy.pub
[andy@vm-02 ~]$
В приведенном случае, мы создали ключ зашифрованный алгоритмом RSA
, имеющим размер 4096 байт, который называется andy
и зашифрован паролем test0987
.
Теперь, необходимо записать наш ключ на сервер:
[andy@vm-02 ~]$ ssh-copy-id -i /home/andy/.ssh/andy.pub andy@192.168.1.1
The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established.
ECDSA key fingerprint is aa:33:2a:9c:6f:24:cd:d9:b5:2a:d6:81:a8:da:e3:15.
Are you sure you want to continue connecting (yes/no)? yes
/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
andy@192.168.1.1's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'andy@192.168.1.1'"
and check to make sure that only the key(s) you wanted were added.
[andy@vm-02 ~]$
Убедимся, что ключ записан. Для этого на сервер vm-01
проверим содержимое файла .ssh/authorized_keys
:
[andy@vm-01 ~]$ cat .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDgRs18lamprI9dr+FkfzWpaK0YXuZYj/NAKRX0LfS4k9xiJsQElZ2cHoOrV6MgsGAHZMWwFhbZZUBEQR30l2DbBi1ajxTK0v10TR/Nxpy1d+CPKXn02PfsanIEASfnY4/5l/TUGBTeRM7VNfUrfuXHmVGlLVb+tV9oMJN4nVKtDhuNFYKfn0y3Zfk86GnDpzUYT8eyR982PpUtYtp2KZyeFk9qsku7JerSy78MaJ83YRDS4lr0DsM4K+tkP/RFKsuJ4LAetj+Y7+x0kYAL/9xiaySxbLNiUp92hml/CiP2XNisz8osz9GkkLdr2Gx+WNKwviVXmBEpwxUZGAulmckA0yiC3/CdH90Tl//cyF2YMbuU6nupECTGLdZc43R+d6JsRHFAKTt4+ghkBSfpKyX5nfLTFfWs5CVWAdEWDVCwTruqcd/88sT6wJsFWRWjof6nXpgb9F1FZVeUnalCUVF49U4bHQ7j1VTJdqhTqtLDzwHUECc5PrmF1fdlXwcNMdrps0B88NvnNBOqhB/Dpc9eRFLWLVUjwGWP7Nl9JAmNi+t9AnHqFvPqYidIUV6hHr6kLRieIhb8k+fABUU/hcqmke7wCV67H1EKgPkfWXfML0PdaeGPFCqovXXYkkpIzyUINLzriBm2HT5QUudsyk1oumH52bWsTkgdcCjP0p9RnQ== andy@example.com
[andy@vm-01 ~]$
Однако, при подключении к серверу vm-01
, нас будут спрашивать пароль. Для того, что бы не вводить его каждый раз, сделаем следующее:
[andy@vm-02 ~]$ eval `ssh-agent -s`
Agent pid 17909
[andy@vm-02 ~]$ ssh-add /home/andy/.ssh/andy
Enter passphrase for /home/andy/.ssh/andy:
Identity added: /home/andy/.ssh/andy (/home/andy/.ssh/andy)
[andy@vm-02 ~]$ ssh andy@192.168.1.1
Last login: Fri Feb 23 07:52:51 2018
[andy@vm-01 ~]$ exit
logout
Connection to 192.168.1.1 closed.
[andy@vm-02 ~]$
Указанный метод работает только для одной терминальной сессии.
По-умолчанию, при подключении, openssh
ищет ключ с названием id_rsa
, для того, что бы различать ключи (если имя ключа отличается от имени по-умолчанию, либо ключи уникальны для каждого хоста), необходимо принудительно указать ключ:
[andy@vm-02 ~]$ ssh andy@192.168.1.1 -i /home/andy/.ssh/andy
Enter passphrase for key '/home/andy/.ssh/andy':
Last login: Fri Feb 23 08:02:53 2018 from 192.168.1.2
[andy@vm-01 ~]$
Или cоздать файл .ssh/config
в домашней директории пользователя, со следующим содержимым:
Host *
User andy
IdentityFile ~/.ssh/andy
Затем изменим права у файла .ssh/config
и попробуем подключиться:
[andy@vm-02 ~]$ chmod 400 /home/andy/.ssh/config
[andy@vm-02 ~]$ ssh andy@192.168.1.1
Last login: Fri Feb 23 08:07:28 2018 from 192.168.1.2
[andy@vm-01 ~]$