- How to install and use SSH on Linux
- Configure SSH on a Local Computer
- Configure SSH on a Remote Computer
- Install SSH server
- Check SSH status
- Find out Server’s IP
- Open SSH port in Firewall
- Connect using SSH
- SSH in FileZilla
- SSH in File Manager
- Forward X
- Transfer files
- Final thoughts
- Руководство по команде SSH в Linux с примерами
- Установка клиента OpenSSH
- Как получить доступ к удаленному серверу
- Укажите имя пользователя для SSH-подключения
- Используйте другой номер порта для SSH-соединения
- Генерация ключей SSH с помощью SSH Keygen
- Копировать открытый ключ SSH
- Копирование файла удаленно через SSH с помощью SCP
- Редактировать файл конфигурации SSH
- Перезапустить службу SSH
- Выполнение команды на удаленном сервере с локального компьютера
- Параметры командной строки SSH
How to install and use SSH on Linux
For example, I use SSH to connect to my virtual private server and to my office computer. Usually, it works only through the terminal. However, you can connect it to your file manager or use some graphical programs like FileZilla, if you do not want to type commands. You can also use graphical forwarding and open graphical programs from the remote server in your local computer.
SSH is a simple, reliable, and very secure way to establish a connection between computers. In this post, you will learn how to install, configure, and use SSH on Linux. In particular, I will show how to:
Configure SSH on a Local Computer
First, you need to set up your client Linux machine. This is the computer you will use to connect from.
You need to install openssh-client on your Linux computer.
sudo apt install openssh-client
sudo zypper install openssh
sudo dnf install -y openssh-clients
If you also need to use Windows as a client install PuTTY.
Configure SSH on a Remote Computer
Next, configure the computer you want to connect to.
Install SSH server
On the remote computer, you need to install openssh-server .
sudo apt install openssh-server
sudo pacman -S openssh sudo systemctl enable sshd sudo systemctl start sshd
sudo dnf install -y openssh-server sudo systemctl enable sshd sudo systemctl start sshd
sudo zypper install openssh sudo systemctl enable sshd sudo systemctl start sshd
Obviously, you will need to have physical access to the remote computer to install this package. For example, if it is my office computer, I will go to my office and install this openssh-server program.
Check SSH status
After the installation, check that SSH is running with:
sudo systemctl status ssh
You should see that it is active:
If it has not started, start it manually:
or simply reboot the system.
Find out Server’s IP
Next, you need to determine the IP address of this remote computer.
The easiest way is to check the network settings. If you have a graphical desktop in that computer, open the network settings and search for IP address.
This is how it looks in Plasma 5:
If you only have the command line, run:
Usually, you will see your IP address in the eth0 connection.
Write down this address, you will need it to be able to connect to this remote computer.
Open SSH port in Firewall
It is possible that you use a firewall and it may block your remote access. So, check open ports:
sudo lsof -i -P -n | grep LISTEN
You should see that port 22 is open. If you do not find port 22 open among open ports, go to your firewall settings and open it.
If you use UFW run this command:
I discuss whether you need a firewall in Linux and how to use it in this post.
Connect using SSH
Now, I assume your remote computer is configured and you are sitting in front of your client Linux machine.
In your client Linux computer, run:
ssh remoteuser@remote-ip-address
You use the username of the remote computer and the IP address is the address you wrote down in a previous step.
If you get a warning “Are you sure you want to continue connecting (yes/no)?”, type yes.
After you typed the password of your user at the remote computer, you will be logged in to a remote Linux computer.
Now, you can work on this remote computer as if you would be sitting in front of that computer and using the terminal.
SSH in FileZilla
If you simply want to work with files without running any programs, you can also connect to your remote server with FileZilla.
In FileZilla, go to the Site manager and add a new site with SFTP protocol:
You will get your local files on the left and your remote files on the right.
You can navigate in FileZilla with your mouse and transfer files between your computers by simple drag-and-drop between these two panels.
SSH in File Manager
Similarly, you can add the remote server to your File Manager. I use Dolphin file manager of Plasma 5 but the procedure is very similar in other file managers.
Go to the Network in your file manager and add a Network folder:
Among these options, select SFTP protocol, give a name to this folder, provide the user name of the remote account, IP address of the remote computer. In the field “remote folder path”, you can use your remote user home folder or any other folder you want to connect to.
As a result, you will see all the folders and files of your remote computer in your file manager.
Forward X
You can also forward graphical application from your remote computer to your local computer. To do that, you simply need to add the option -X during the login.
ssh -X remoteuser@remote-ip-address
Now, if you start any graphical program in a remote computer, it will open in your local computer, like this Firefox on the screenshot.
Transfer files
To transfer a file to a remote computer in the terminal run:
scp /path/to/local/file remoteuser@remote-ip-address:/path/to/remote/file
And to transfer a file from a remote computer to your local computer simply type first the remote address and then local.
scp remoteuser@remote-ip-address:/path/to/remote/file /path/to/local/file
You can also use wild cards to transfer many files at the same time. I showed how to use wild cards in this YouTube video.
Final thoughts
As you have seen SSH is a pretty handy program. It is not difficult to install and use. There are some more configurations you do to your SSH. I recommend enhancing the security of your SSH connection with SSH keys and white-listed IP addresses.
Average Linux UserFollow I am the founder of the Average Linux User project, which is a hobby I work on at night. During the day I am a scientist who uses computers to analyze genetic data.
Руководство по команде SSH в Linux с примерами
SSH (Secure Shell) — это сетевой протокол, который обеспечивает безопасное удаленное соединение между двумя системами. Системные администраторы используют утилиты SSH для управления компьютерами, копирования или перемещения файлов между системами. Поскольку SSH передает данные по зашифрованным каналам, безопасность находится на высоком уровне.
Установка клиента OpenSSH
Есть много SSH-клиентов, бесплатных и платных, и OpenSSH является наиболее широко используемым клиентом. Он доступен на всех основных платформах, включая Linux, OpenBSD, Windows и macOS. Клиент OpenSSH предустановлен в большинстве дистрибутивов Linux по умолчанию, однако если в вашей системе не установлен клиент ssh, вы можете установить его с помощью диспетчера пакетов.
sudo apt install openssh-client
Как получить доступ к удаленному серверу
Для подключения к удаленному компьютеру вам потребуется его IP-адрес или имя. Загрузите терминал или любой SSH-клиент и введите ssh, а затем IP-адрес:
При первом подключении к хосту вы увидите следующее сообщение:
Введите yes и нажмите Enter. Возможно, вам также потребуется ввести свой пароль.
Укажите имя пользователя для SSH-подключения
SSH использует текущего пользователя при доступе к удаленному серверу. Чтобы указать пользователя для SSH-соединения, выполните команду в следующем формате:
ssh username@hostname_or_ip
Примечание. Если вы столкнулись с ошибкой «Connection refused», обратитесь к нашему руководству, чтобы найти решения.
Используйте другой номер порта для SSH-соединения
По умолчанию сервер SSH прослушивает соединение на порту 22. Если настройка порта в файле конфигурации SSH была изменена, вам необходимо указать порт. В противном случае вы получите такую ошибку:
Чтобы подключиться к удаленному хосту с настраиваемым номером порта SSH, используйте флаг -p . Например:
Генерация ключей SSH с помощью SSH Keygen
Чтобы повысить безопасность соединений SSH, сгенерируйте пару ключей с помощью утилиты keygen. Пара состоит из открытого и закрытого ключей. Открытый ключ может быть общим, а закрытый ключ должен оставаться в безопасности.
Пары ключей SSH используются для автоматической аутентификации клиентов на серверах. Когда вы создаете пару ключей SSH, больше не нужно вводить пароль для доступа к серверу.
На терминале хост-машины используйте эту команду для создания пары ключей:
Чтобы использовать настройки по умолчанию, нажмите Enter в ответ на запрос местоположения файла и парольной фразы.
Копировать открытый ключ SSH
Чтобы использовать пару ключей для аутентификации SSH, вам необходимо скопировать открытый ключ на сервер. Ключ — это файл id_rsa.pub , ранее созданный с помощью утилиты генерации ключей SSH.
Чтобы скопировать ключ на сервер, запустите эту команду на клиенте:
Вы также можете указать имя пользователя, если не хотите использовать текущего пользователя.
Введите пароль для аутентификации, когда его спросят. После этого вам больше не нужно будет использовать пароль для подключения к тому же серверу.
Копирование файла удаленно через SSH с помощью SCP
Вы можете безопасно копировать файлы по протоколу SSH с помощью инструмента SCP. Базовый синтаксис:
scp fileName user@remotehost:/home/username/destination
Например, чтобы скопировать файл sample3 на рабочий стол на удаленном сервере с проверкой имени пользователя, введите:
scp sample3 test@10.0.10.5:/home/test/Desktop
Выходные данные показывают сводку операции.
Обязательно используйте флаг -P в верхнем регистре, если вам нужно указать порт.
Редактировать файл конфигурации SSH
Вы можете контролировать, как удаленные пользователи могут получить доступ к серверу через SSH. Измените настройки в файле sshd_config , чтобы настроить параметры сервера SSH. Обязательно редактируйте только те параметры, которые вам знакомы. Сервер может стать недоступным из-за неправильной конфигурации.
Используйте любой редактор по вашему выбору, чтобы отредактировать файл. Для внесения изменений вам потребуются права суперпользователя. В Linux мы используем vim.
В командной строке на удаленном хосте введите:
sudo vim /etc/ssh/sshd_config
Введите пароль sudo, и оболочка откроет файл в редакторе, который вы использовали.
Перезапустить службу SSH
Когда вы вносите изменения в конфигурацию SSH, вам нужно будет перезапустить службу в Linux.
В зависимости от дистрибутива Linux выполните одну из следующих команд на машине, на которой вы изменили настройки:
sudo sshd service restart
Наконец, введите пароль, чтобы завершить процесс. В результате в следующем сеансе SSH будут использоваться новые настройки.
Выполнение команды на удаленном сервере с локального компьютера
Этот метод не создает новую оболочку. Вместо этого он запускает команду и возвращает пользователя в локальную подсказку. Вы можете создать файл, скопировать файлы или запустить любую другую команду SSH в этом формате.
Чтобы удаленно выполнить команду с локального компьютера, добавьте инструкцию к команде SSH. Например, чтобы удалить файл, введите:
ssh test.server.com rm ~/Desktop/Dir1/sample4
Введите пароль, и файл на удаленном сервере будет удален без создания новой оболочки.
Параметры командной строки SSH
Инструмент SSH имеет множество дополнительных параметров. Ниже перечислены общие параметры SSH и соответствующие описания.
- -1 — указывает ssh использовать версию протокола 1
- -2 — указывает ssh использовать протокол версии 2.
- -4 — разрешает только адреса IPv4.
- -6 — разрешает только адреса IPv6.
- -A — включает переадресацию соединения агента аутентификации. Используйте эту опцию с осторожностью.
- -a — Отключает переадресацию соединения агента аутентификации.
- -b bind_address — используйте эту опцию на локальном хосте с более чем одним адресом, чтобы установить исходный адрес соединения.
- -C — включает сжатие данных для всех файлов. Только для использования с медленными соединениями.
- -c cipher_spec — используется для выбора спецификации шифра. Перечислите значения через запятую.
- -E log_fileName — прикрепляет журналы отладки к log_file вместо стандартной ошибки.
- -f — отправляет ssh в фоновый режим даже до ввода пароля или ключевой фразы.
- -g — Разрешает удаленным хостам подключаться к портам, перенаправленным на локальном компьютере.
- -q — запускает ssh в тихом режиме. Он подавляет большинство сообщений об ошибках и предупреждениях.
- -V — отображает версию инструмента ssh и завершает работу.
- -v — печатает отладочные сообщения для ssh-соединения. Подробный режим полезен при устранении неполадок конфигурации.
- -X — Используйте этот параметр, чтобы включить пересылку X11.
- -x — Отключить пересылку X11.