Не всегда удобно авторизовываться на серверах с помощью пароля, входя на них по ssh. Так же появляется возможность легко выполнять команды на удаленных серверах из скриптов, скачивать и закачивать файлы с помощью scp и многое другое.
Простая реализация авторизации по ключу:
1. Заходим на сервера, между которыми хотим создать авторизацию по ключу, под тем пользователем, от имени которого мы будем устанавливать соединение.
2. Генерируем ключевую пару у пользователя
ssh-keygen
при запросе пароля оставляем его пустым. После выполнения команды в папке пользователя появляются файлы закрытого и открытого ключа
~/.ssh/id_rsa
~/.ssh/id_rsa.pub
3. Теперь остается только создать рядом с ключами файл authorized_keys
~/.ssh/authorized_keys
в который скопировать открытый ключ с другого сервера (если доступ требуется обоюдный, то это нужно сделать и на том и на другом сервере, если надо попадать с первого на второй сервер, то достаточно открытый ключ первого сервера разместить на втором сервере).
Ключи можно скопировать, к примеру, командой
cat ./id_rsa.pub | ssh remote_user@remote_host 'cat >> ~/.ssh/authorized_keys'
Примеры использования данного подключения:
1. Исполнение команды (совсем простой пример, без проброса stdin/out)
ssh user@server ls /etc/
Можно выполнить команду, результат которой записать в локальный файл
ssh user@server command > local_file
2. Копирование файлов на удаленный сервер
scp -r dir1 user@remote.host:/some/remote/directory/dir2
или с удаленного сервера
scp user@8.8.8.8:/full/path/to/file /path/to/put/here
Так же можно упростить себе жизнь, начав использовать алиасы для ssh:
1. Создаем файл конфига
~/.ssh/config
2. Пишем в него требуемые алиасы
Host server1
Hostname компания.рф
User Администратор
ForwardX11 yes
Compression yes
Host home
Hostname myhome.org
User vasya_pupkin
PasswordAuthentication no
Host server2
Hostname 192.168.0.10
User root
PasswordAuthentication no
Простая реализация авторизации по ключу:
1. Заходим на сервера, между которыми хотим создать авторизацию по ключу, под тем пользователем, от имени которого мы будем устанавливать соединение.
2. Генерируем ключевую пару у пользователя
ssh-keygen
при запросе пароля оставляем его пустым. После выполнения команды в папке пользователя появляются файлы закрытого и открытого ключа
~/.ssh/id_rsa
~/.ssh/id_rsa.pub
3. Теперь остается только создать рядом с ключами файл authorized_keys
~/.ssh/authorized_keys
в который скопировать открытый ключ с другого сервера (если доступ требуется обоюдный, то это нужно сделать и на том и на другом сервере, если надо попадать с первого на второй сервер, то достаточно открытый ключ первого сервера разместить на втором сервере).
Ключи можно скопировать, к примеру, командой
cat ./id_rsa.pub | ssh remote_user@remote_host 'cat >> ~/.ssh/authorized_keys'
Примеры использования данного подключения:
1. Исполнение команды (совсем простой пример, без проброса stdin/out)
ssh user@server ls /etc/
Можно выполнить команду, результат которой записать в локальный файл
ssh user@server command > local_file
2. Копирование файлов на удаленный сервер
scp -r dir1 user@remote.host:/some/remote/directory/dir2
или с удаленного сервера
scp user@8.8.8.8:/full/path/to/file /path/to/put/here
Так же можно упростить себе жизнь, начав использовать алиасы для ssh:
1. Создаем файл конфига
~/.ssh/config
2. Пишем в него требуемые алиасы
Host server1
Hostname компания.рф
User Администратор
ForwardX11 yes
Compression yes
Host home
Hostname myhome.org
User vasya_pupkin
PasswordAuthentication no
Host server2
Hostname 192.168.0.10
User root
PasswordAuthentication no
3. Подключаемся к серверу
ssh server2