Как пользоваться протоколом ssh в ubuntu: установка и настройка

Step 4 — Disabling Password Authentication on Your Server

If you were able to log into your account using SSH without a password, you have successfully configured SSH-key-based authentication to your account. However, your password-based authentication mechanism is still active, meaning that your server is still exposed to brute-force attacks.

Before completing the steps in this section, make sure that you either have SSH-key-based authentication configured for the root account on this server, or preferably, that you have SSH-key-based authentication configured for a non-root account on this server with privileges. This step will lock down password-based logins, so ensuring that you will still be able to get administrative access is crucial.

Once you’ve confirmed that your remote account has administrative privileges, log into your remote server with SSH keys, either as root or with an account with privileges. Then, open up the SSH daemon’s configuration file:

Inside the file, search for a directive called . This line may be commented out with a at the beginning of the line. Uncomment the line by removing the , and set the value to . This will disable your ability to log in via SSH using account passwords:

/etc/ssh/sshd_config

Save and close the file when you are finished by pressing , then to confirm saving the file, and finally to exit nano. To actually activate these changes, we need to restart the service:

As a precaution, open up a new terminal window and test that the SSH service is functioning correctly before closing your current session:

Once you have verified your SSH service is functioning properly, you can safely close all current server sessions.

The SSH daemon on your Ubuntu server now only responds to SSH-key-based authentication. Password-based logins have been disabled.

Пример файла конфигурации SSH

Теперь, когда мы рассмотрели основы файла конфигурации SSH, давайте посмотрим на следующий пример.

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

Чтобы подключиться к серверу с использованием тех же параметров, которые указаны в приведенной выше команде, просто набрав , поместите следующие строки в свой :

~/.ssh/config

Теперь, когда вы вводите , клиент ssh будет читать файл конфигурации и использовать данные подключения, указанные для хоста :

Пример файла конфигурации общего SSH

Этот пример дает более подробную информацию о шаблонах хоста и приоритетах опций.

Возьмем следующий пример файла:

  • Когда вы вводите , клиент ssh читает файл и применяет параметры из первого совпадения, то есть . Затем он проверяет следующие строфы одну за другой на соответствие шаблону. Следующим подходящим является (то есть все хосты, кроме ), и он применит параметр подключения из этой строфы. Последнее определение также совпадает, но клиент ssh будет использовать только параметр поскольку параметр уже определен в разделе .

    Полный список параметров, используемых при выглядит следующим образом:

  • При запуске подходящими шаблонами хоста являются: , , и . В этом случае используются следующие параметры:

  • Если вы запустите , соответствующие шаблоны хостов будут следующими: , и . В этом случае используются следующие параметры:

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

Step 1 — Create the RSA Key Pair

The first step is to create a key pair on the client machine (usually your computer):

By default will create a 2048-bit RSA key pair, which is secure enough for most use cases (you may optionally pass in the flag to create a larger 4096-bit key).

After entering the command, you should see the following output:

Press enter to save the key pair into the subdirectory in your home directory, or specify an alternate path.

If you had previously generated an SSH key pair, you may see the following prompt:

If you choose to overwrite the key on disk, you will not be able to authenticate using the previous key anymore. Be very careful when selecting yes, as this is a destructive process that cannot be reversed.

You should then see the following prompt:

Here you optionally may enter a secure passphrase, which is highly recommended. A passphrase adds an additional layer of security to prevent unauthorized users from logging in. To learn more about security, consult our tutorial on How To Configure SSH Key-Based Authentication on a Linux Server.

You should then see the following output:

You now have a public and private key that you can use to authenticate. The next step is to place the public key on your server so that you can use SSH-key-based authentication to log in.

Установка ssh Ubuntu 16.04

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

Служба ssh позволяет получить доступ к терминалу удаленного компьютера и выполнить там все необходимые вам команды. При своей простоте она достаточно безопасна, чтобы использоваться для решения серьезных коммерческих задач, так и задач обычных пользователей. В этой статье мы рассмотрим как выполняется установка ssh Ubuntu 16.04, а также поговорим о начальной настройке ssh сервера.

Что такое SSH?

SSH или Secure Shell — это протокол безопасного доступа из одного компьютера к другому по сети. У протокола SSH очень много возможностей. Вы можете создавать защищенные соединения между компьютерами, открывать командную строку на удаленном компьютере, запускать графические программы, передавать файлы и организовывать частные сети.

За поддержку протокола SSH в Linux отвечает набор программного обеспечения OpenSSH. Это открытая реализация этого протокола, которая предоставляет все необходимые возможности. В состав пакета OpenSSH входят утилиты для установки соединения, передачи файлов, а также сам ssh сервер.

Установка OpenSSH в Ubuntu

Установить ssh на Ubuntu будет очень просто, программа считается стандартной и используется почти везде. Хотя по умолчанию в дистрибутиве ее нет, но зато она есть в официальных репозиториях.

Поэтому для установки откройте терминал с помощью сочетания клавиш Ctrl+Alt+T и выполните команду:

sudo apt install openssh-server

Будет загружено несколько пакетов, а когда установка ssh сервера Ubuntu завершится, программа будет готова к работе. Если вы хотите чтобы служба запускалась автоматически нужно добавить его в автозагрузку. Поэтому чтобы включить ssh Ubuntu 16.04 выполните:

sudo systemctl enable sshd

Если затем вы захотите удалить службу из автозагрузки, используйте команду disable:

sudo systemctl disable sshd

Что касается клиента ssh, то он уже установлен в системе по умолчанию. Сейчас вы можете попробовать подключиться к локальному ssh серверу просто набрав:

ssh localhost

В одной из предыдущих статей мы рассматривали что означает адрес 0.0.0.0, сейчас вы можете убедиться что в пределах этой машины он значит локальный адрес:

ssh 0.0.0.0

Точно таким способом вы можете получить ssh доступ ubuntu к любому другому компьютеру из сети. Для этого достаточно указать вместо localhost его ip адрес и имя пользователя в таком формате:

$ ssh имя_пользователя@ip_адрес

Настройка SSH в Ubuntu

С параметрами по умолчанию сервер SSH не очень безопасен поэтому перед тем, как программа будет готова к полноценному использованию ее нужно немного настроить. Все настройки сервера SSH хранятся в конфигурационном файле sshd_config, который находится в папке /etc/ssh.

Перед тем как вносить изменения в этот конфигурационный файл рекомендуется сделать его резервную копию, для этого можете использовать такую команду:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults

Дальше вы можете перейти к настройке конфигурационного файла:

sudo vi /etc/ssh/sshd_config

Первым делом желательно сменить порт, на котором работает ssh, возможный злоумышленник не знал включен ли у вас этот сервис. Найдите в конфигурационном файле строчку Port и замените ее значение на любое число, например, Port 2222:

Чтобы разрешить аутентификацию по ключу, а не по паролю найдите строку PubkeyAuthentication и убедитесь, что ее значение yes.

После того как все настройки будут завершены, сохраните изменения нажав :w и перезапустите службу ssd:

sudo systemctl restart ssh

Более подробно про настройку и использование различных тонкостей ssh рассказано в статье как использовать ssh.

Если вы изменили порт, то при подключении в клиенте тоже нужно указать новый порт, так как по умолчанию будет использоваться 22, например:

ssh -p 2222 localhost 

К тому же, если на компьютере установлен и настроен брандмауэр, то в нем тоже нужно разрешить доступ к новому порту ssh, для этого выполните:

sudo ufw allow 2222

Даже если служба ssh находится на порту по умолчанию, его тоже нужно открыть в брандмауэре если вы собираетесь подключаться к компьютеру через интернет:

sudo ufw allow 22

Настройка ssh Ubuntu 16.04 полностью завершена.

How To Log Into SSH with Keys

While it is helpful to be able to log in to a remote system using passwords, it’s a much better idea to set up key-based authentication.

How Does Key-based Authentication Work?

Key-based authentication works by creating a pair of keys: a private key and a public key.

The private key is located on the client machine and is secured and kept secret.

The public key can be given to anyone or placed on any server you wish to access.

When you attempt to connect using a key-pair, the server will use the public key to create a message for the client computer that can only be read with the private key.

The client computer then sends the appropriate response back to the server and the server will know that the client is legitimate.

This entire process is done automatically after you set up keys.

How To Create SSH Keys

SSH keys should be generated on the computer you wish to log in from. This is usually your local machine.

Enter the following into the command line:

Press enter to accept the defaults. Your keys will be created at ~/.ssh/id_rsa.pub and ~/.ssh/id_rsa.

Change into the directory by typing:

Look at the permissions of the files:

As you can see, the file is readable and writable only to the owner. This is how it should be to keep it secret.

The file, however, can be shared and has permissions appropriate for this activity.

How To Transfer Your Public Key to the Server

If you currently have password-based access to a server, you can copy your public key to it by issuing this command:

This will start an SSH session. After you enter your password, it will copy your public key to the server’s authorized keys file, which will allow you to log in without the password next time.

Disabling Password Authentication

If you have created SSH keys, you can enhance your server’s security by disabling password-only authentication. Apart from the console, the only way to log into your server will be through the private key that pairs with the public key you have installed on the server.

Warning: Before you proceed with this step, be sure you have installed a public key to your server. Otherwise, you will be locked out!

As root or user with sudo privileges, open the configuration file:

Locate the line that reads , and uncomment it by removing the leading . You can then change its value to :

/etc/ssh/sshd_config

Two more settings that should not need to be modified (provided you have not modified this file before) are and . They are set by default, and should read as follows:

/etc/ssh/sshd_config

After making your changes, save and close the file.

You can now reload the SSH daemon:

Password authentication should now be disabled, and your server should be accessible only through SSH key authentication.

Что представляет собой протокол SSH

Протокол Secure Shell, известный также как SSH — специальный протокол для безопасного удалённого доступа к компьютеру через сетевое подключение. Протокол имеет много возможностей, в том числе организацию защищённого подключения, запуск командной строки терминала на компьютере, к которому вы подключаетесь удалённо, запуск приложений с графическим интерфейсом, передача файлов и развёртывание приватных сетей.

Существует множество утилит, отвечающих за управлением протоколом. На операционной системе Ubuntu самым известным является Open SSH. Это полностью свободный продукт с открытой лицензией и полным набором самых необходимых функций. Клиент для управления SSH-подключением уже включён в дистрибутив Ubuntu, вам нужно будет лишь установить и настроить серверные компоненты. Управление осуществляется через команды в терминале.

How To Configure SSH

When you change the configuration of SSH, you are changing the settings of the sshd server.

In Ubuntu, the main sshd configuration file is located at .

Back up the current version of this file before editing:

Open it with a text editor:

You will want to leave most of the options in this file alone. However, there are a few you may want to take a look at:

/etc/ssh/sshd_config

The port declaration specifies which port the sshd server will listen on for connections. By default, this is . You should probably leave this setting alone, unless you have specific reasons to do otherwise. If you do change your port, we will show you how to connect to the new port later on.

/etc/ssh/sshd_config

The host keys declarations specify where to look for global host keys. We will discuss what a host key is later.

/etc/ssh/sshd_config

These two items indicate the level of logging that should occur.

If you are having difficulties with SSH, increasing the amount of logging may be a good way to discover what the issue is.

/etc/ssh/sshd_config

These parameters specify some of the login information.

specifies how many seconds to keep the connection alive without successfully logging in.

It may be a good idea to set this time just a little bit higher than the amount of time it takes you to log in normally.

selects whether the root user is allowed to log in.

In most cases, this should be changed to when you have created a user account that has access to elevated privileges (through or ) and can log in through ssh.

is a safety guard that will refuse a login attempt if the authentication files are readable by everyone.

This prevents login attempts when the configuration files are not secure.

/etc/ssh/sshd_config

These parameters configure an ability called X11 Forwarding. This allows you to view a remote system’s graphical user interface (GUI) on the local system.

This option must be enabled on the server and given with the SSH client during connection with the option.

After making your changes, save and close the file by typing and , followed by .

If you changed any settings in , make sure you reload your sshd server to implement your modifications:

You should thoroughly test your changes to ensure that they operate in the way you expect.

It may be a good idea to have a few sessions active when you are making changes. This will allow you to revert the configuration if necessary.

Перенаправление локального порта

Перенаправление локального порта позволяет вам перенаправить порт на локальном (ssh-клиент) компьютере на порт на удаленном (ssh-сервере), который затем перенаправляется на порт на конечном компьютере.

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

Перенаправление локальных портов в основном используется для подключения к удаленной службе во внутренней сети, такой как база данных или сервер VNC.

В Linux, macOS и других системах Unix, чтобы создать переадресацию локального порта, передайте параметр клиенту :

Используются следующие параметры:

  • — IP-адрес и номер порта локального компьютера. Если опущен, клиент ssh привязывается к локальному хосту.
  • — IP или имя хоста и порт конечного компьютера.
  • — удаленный пользователь SSH и IP-адрес сервера.

В качестве можно использовать любой порт с номером больше . Порты с номерами меньше являются привилегированными и могут использоваться только пользователем root. Если ваш SSH-сервер прослушивает порт, отличный от 22 (по умолчанию), используйте параметр .

Имя хоста назначения должно разрешаться с сервера SSH.

Допустим, у вас есть сервер базы данных MySQL, работающий на машине во внутренней (частной) сети, на порте 3306, который доступен с машины , и вы хотите подключиться к базе данных с помощью клиента MySQL на локальном компьютере. сервер. Для этого вы можете перенаправить соединение, используя следующую команду:

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

Теперь, если вы базы данных на компьютере , соединение будет перенаправлено на MySQL через компьютер который действует как промежуточный сервер.

Вы можете перенаправить несколько портов в несколько пунктов назначения с помощью одной команды ssh. Например, у вас есть другой сервер базы данных MySQL, работающий на компьютере , и вы хотите подключиться к обоим серверам со своего локального клиента, вы должны запустить:

Чтобы подключиться ко второму серверу, вы должны использовать .

Когда целевой хост совпадает с SSH-сервером, вместо указания IP-адреса или имени хоста назначения вы можете использовать .

Допустим, вам нужно подключиться к удаленному компьютеру через VNC, который работает на том же сервере и недоступен извне. Вы бы использовали следующую команду:

Параметр указывает команде работать в фоновом режиме, а не выполнять удаленную команду. Мы используем потому что VNC и SSH-сервер работают на одном хосте.

Если у вас возникли проблемы с настройкой туннелирования, проверьте конфигурацию удаленного SSH-сервера и убедитесь, что для параметра не задано значение . По умолчанию пересылка разрешена.

known_hosts

Список известных хостов находится в файле

known_hosts

Полный путь:

Примеры алгоритмов: ssh-rsa, ssh-dss, ssh-ed25519, ecdsa-sha2-nistp256

Пример строки:

|1|abcdef+abcdefghijklmnopqrst=|abcdefghijklmnopqrstuvwxyz1= ssh-rsa abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrst/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz12345/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzB1234567

Таким образом

abcdef+abcdefghijklmnopqrst=|abcdefghijklmnopqrstuvwxyz1=

Это хэш от имени сервера.

ssh-rsa

Это алгоритм шифрования

abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrst/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz12345/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzB1234567

Это публичный ключ хоста

Настройте сервер SSH

Для того, чтобы установить SSH сервер очень легко, но делает его гораздо более безопасным, требует немного больше работы. После завершения установки отредактируйте файл. Но прежде чем приступить к редактированию любого файла конфигурации, я предлагаю вам сделать резервную копию исходного файла:

Теперь используйте следующую команду для редактирования файла:

Первое, что вы захотите отредактировать, это порт, который прослушивает ваш SSH-сервер. По умолчанию SSH-сервер прослушивает порт 22. Все это знают. Поэтому для обеспечения безопасности соединения всегда рекомендуется запускать сервер SSH через нестандартный порт. Поэтому отредактируйте следующий раздел, чтобы выбрать случайный номер порта:

Для повышения безопасности вы можете дополнительно настроить еще несколько параметров. Первый есть . Установите это, чтобы запретить кому-либо входить в систему , что значительно снижает вероятность серьезных изменений со стороны хакеров.

Второе необязательное изменение для повышения безопасности – перечисление пользователей, которым разрешен удаленный доступ к системе через SSH. Для этого добавьте следующую строку в конец файла:

Замените и на фактические имена пользователей.

Единственное, что вы можете пожелать, это установить «да». Это позволит вам запускать программное обеспечение на удаленном сервере в локальной системе. Если локальной системой является Windows, которая не поставляется с, вы можете использовать бесплатные программы, такие как Xming.

После установки SSH-сервера и внесения любых изменений в файл конфигурации () вам придется перезапустить службу. Используйте следующую команду для перезапуска SSH:

Если вы настроили псевдонимы bash, как описано в этом посте, вы можете использовать ярлыки (например ) для перезапуска вашего сервера OpenSSH.

Безопасная оболочка Ubuntu

Итак, установите SSH-сервер в вашей системе Ubuntu и начните пользоваться удаленным доступом. Теперь вы можете получить доступ к системным папкам и файлам через SFTP с помощью таких программ, как FileZilla.

Источник записи: https://www.smarthomebeginner.com

ssh-copy-id

Я предпочитаю использовать с флагом -i и задавать путь до нужного ключа

sudo ssh-copy-id -i ~/.ssh/andrei-key.pub andrei@192.168.0.2

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: «/home/andrei/.ssh/andrei-key.pub»
The authenticity of host ‘192.168.0.2 (192.168.0.2)’ can’t be established.
ECDSA key fingerprint is SHA256:abcdefgh1234567890abcdefgh1234567890abc+def.
Are you sure you want to continue connecting (yes/no/)?

Введите yes

Are you sure you want to continue connecting (yes/no/)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed — if you are prompted now it is to install the new keys
andrei@192.168.0.2’s password:

Введите пароль

Number of key(s) added: 1

Now try logging into the machine, with: «ssh ‘andrei@192.168.0.2′»
and check to make sure that only the key(s) you wanted were added.

Теперь на хосте 192.168.0.2 в файле
/home/andrei/.ssh/authorized_keys
появилась новая запись вида

ssh-rsa AAAAB3NzaC1y … lseP/jXcq … Uydr/2CwQ &hellip ++TpY19pHqD/AnhL … Az62T/Ipyx … 8U2T andrei@host.andrei.com

Знак … заменяет длинные последовательности случайных символов для экономии места.

Проверить ключ можно командой

ssh -i ~/.ssh/mykey user@host

В нашем случае

ssh -i ~/.ssh/andrei-key andrei@192.168.0.2

Если вы не задавали пароль для ключа, то попадёте на удалённый хост без лишних движений

Last login: Sun Jan 10 16:48:27 2021 from 192.168.0.1

Примеры

Существует большое количество методов использования утилиты. Большинство из них неизвестны современному пользователю операционной системы Линукс.

Рассмотрим подключение к серверу.

При присоединении с использованием утилиты в командной строке потребуется ввести:

Например, нам надо подключиться к компьютеру в локальной сети debian, под пользователем slon.

Все современные пользователи первоначально присоединяются к удаленной хосту (компьютеру). Только после этого они вводят требуемые команды. Утилита ssh дает возможность выполнить необходимую задачу без обязательного запуска терминала на удаленной машине.

Предположим нам надо запустить команду top на удаленном компьютере.

К примеру, требуется запустить скрипт bash на удаленном компьютере. Сам файл bash.sh находится на локальном компьютере . Для этих целей необходимо провести перенаправление ввода bash.

С использованием утилиты пользователю предоставляется возможность сохранить бекап локального диска на удаленной серверной машине. Для этих целей нужно перенаправлять вывод dd с использованием оператора перенаправления.  Далее вывод dd сохраняется в файле copiadiska.img.

Для восстановления прежнего состояния локального диска используется созданная ранее копия. Для этого в командной строке нужно ввести:

При использовании команды ssh для входа в удаленный сервер нередко требуется пароль. Это создает дополнительные неудобства, но дает возможность обезопасить вас от злоумышленников. Несмотря на защиту, пароль можно подобрать.

Наиболее надежным методом аутентификации является использование нескольких ключей RSA. Один из них хранится на ПК, а второй является публичным. Он применяется пользователем при авторизации.

Это поведение весьма просто настроить. Изначально необходимо задать ключ. Для этого потребуется ввести:

При создании ключа пользователю необходимо ответить на определённый перечень вопросов. Если вы желаете присоединиться к удаленной машине без обязательного введения пароля, в области «Passphare» нужно оставить пустое место.

Далее ключ отправляется на удаленную машину, вводится:

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

Стоит отметить, размещать пароли в обыденных текстовых файлах не стоит. Ими могут воспользоваться злоумышленники Но если это потребуется, такой вариант возможен. Чтобы сохранить пароль, необходимо воспользоваться оператором, используемым при перенаправлении Bash. Введите в командной строке:

При запуске команды ssh на экране монитора нередко всплывает приветствие. Допускается его изменение. За такую функцию отвечает специальный файл «/etc/issue». Вам потребуется просто открыть данный файл и указать необходимо приветствие. Для этого вводится команда:

В некоторых случаях пользователю ОС Линукс может потребоваться информация о неудачных попытках подключения к утилите. Вы можете посмотреть IP-адреса, с которых совершалось данное действие.

Все запросы о входах концентрируются в «/var/log/secure».

Чтобы отфильтровывать информацию в терминале по запросу «Failed password» необходимо добавит grep

Нередко пользователям требуется запустить определенное приложение с графической оболочкой на удаленном компьютере.

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

Стоит отметить, что все получаемые данные могут шифроваться. Чтобы такая опция заработала, потребуется включить поддержку со стороны удаленного сервера. Далее выполняется команда, позволяющая загрузить графическую программу. Для этого потребуется ввести в командную строку «ssh -XC user@remotehost «eclipse»».

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

Теперь можно завершить сессию простой командой:

В завершении можно сказать, что утилита ssh имеет существенно больший функционал, чем это кажется с первого взгляда. Пользоваться такой командой можно как при программировании, так и в повседневной работе.

Минимально необходимые команды

  • Разрешение использования порта в брандмауэре. Если вы пользуетесь на своём компьютере с операционной системой Ubuntu брандмауэром для контроля соединений, примените команду, разрешающую использование интернет-подключения утилитой SSH: sudo ufw allow 2222. Вместо 2222 пропишите номер порта, который использовали лично вы.
  • Подключение к серверу. Немного выше мы уже писали, как можно подключаться к удалённому компьютеру, но не помешает напомнить. Введите команду вида ssh имя_пользователя@ip_адрес, где в первом параметре напишите логин для подсоединения к компьютеру, а во втором — его адрес в сети.
  • Выполнение удалённых команд. Допустим, вам нужно удалённо выполнить какую-либо команду на компьютере, к которому вы подключаетесь. Для этого к команде для подключения к компьютеру, указанной в предыдущем пункте, добавьте команда, которую нужно исполнить. например, вернёмся, к примеру, с Васей Пупкиным: ssh vasya_pupkin@132.14.25.10 ls. На удалённом компьютере будет выполнена команда ls.
  • Аутентификация на сервере с применением ключа. Поскольку пароль очень легко подобрать, наиболее надёжным и безопасным способом подключения к удалённому компьютеру через сеть будет с использованием специального ключа. Чтобы создать его, воспользуйтесь командой ssh-keygen -t rsa. Ответьте на все вопросы, которые у вас спросит утилита настройки. Затем отправьте созданный ключ на удалённый сервер: ssh-copy-id -i ~/.ssh/id_rsa.pub имя_пользователя@адрес_компьютера. Теперь, когда вы будете подключаться к этой удалённой машине, пароль запрашивается не будет, а будет использоваться персональный ключ. 
  • Передача файлов. Иногда необходимо передать какие-то файлы или документы на удалённый компьютер. Для этого вам понадобится следующая команда: scp /расположение/файла имя_пользователя@адрес_компьютера: расположение/папки. Вот конкретный образец на основе примера с Васей Пупкиным): scp /home/text.pdf vasya_pupkin@132.14.25.10:home/documents. Чтобы использовать сжатие файлов и пересылать целые папки, поможет команда tar czf — /home/user/file | ssh имя_пользователя@адрес_компьютера tar -xvzf -C /home/папка_пользователя/.
  • Запуск графического интерфейса программ на удалённом компьютере. К примеру, вы работаете из дому, но необходимое программное обеспечение установлено на вашем рабочем компьютере. Его можно запустить удалённо, а на вашем домашнем ПК будет отображаться лишь интерфейс программы, тогда как все вычисления и обработка данных будет происходить на рабочей машине. Если вы уже ранее активировали возможность запуска графического интерфейса программ, воспользуйтесь вот такой командой: ssh -XC имя_пользователя@адрес_компьютера «название_программы».

Step 3 — Authenticating to Your Ubuntu Server Using SSH Keys

If you have successfully completed one of the procedures above, you should be able to log into the remote host without providing the remote account’s password.

The basic process is the same:

If this is your first time connecting to this host (if you used the last method above), you may see something like this:

This means that your local computer does not recognize the remote host. Type “yes” and then press to continue.

If you did not supply a passphrase for your private key, you will be logged in immediately. If you supplied a passphrase for the private key when you created the key, you will be prompted to enter it now (note that your keystrokes will not display in the terminal session for security). After authenticating, a new shell session should open for you with the configured account on the Ubuntu server.

If key-based authentication was successful, continue on to learn how to further secure your system by disabling password authentication.

Копирование при помощи ssh-copy-id

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

Команда копирования ключей:

ssh-copy-id username@remote_host

1 ssh-copy-id username@remote_host

username — имя пользователя удаленной машины, remote_host — ip адрес удаленной машины. При первом подключении вы можете увидеть:

The authenticity of host ‘203.0.113.1 (203.0.113.1)’ can’t be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes

1
2
3

The authenticity of host’203.0.113.1 (203.0.113.1)’can’tbe established.

ECDSA key fingerprint isfdfdd4f977fe7384e15500add66d22fe.

Are you sure you want tocontinueconnecting(yesno)?yes

Что говорит о том, что ваша локальная машина не узнала удаленную, и предлагается продолжить соединение, вводим yes и нажимаем enter. Затем утилита начнет поиск ключа, созданного ранее, в вашей домашней директории. При успешном обнаружении будет запрошен пароль, для входа на удаленный сервер.

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed — if you are prompted now it is to install the new keys
username@203.0.113.1’s password:

1
2
3

usrbinssh-copy-idINFOattempting tolog inwith the newkey(s),tofilter out any that are already installed

usrbinssh-copy-idINFO1key(s)remain tobe installed—ifyou are prompted now it istoinstall the newkeys

username@203.0.113.1’spassword

После ввода пароля нажимаем enter, произойдет авторизация и будет скопировано содержимое публичного ключа, расположенного в ~/.ssh/id_rsa.pub в файл  ~/.ssh/id_rsa.pub  в поддиректории  ~/.ssh  домашней директории вашего пользователя на удалённом сервере.

Вывод будет таким:

Number of key(s) added: 1

Now try logging into the machine, with: «ssh ‘username@ip-address'»
and check to make sure that only the key(s) you wanted were added.

1
2
3
4

Number of key(s)added1

Now trylogging into the machine,with»ssh ‘username@ip-address'»

andcheck tomake sure that only the key(s)you wanted were added.

Процедура копирования закончена.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector