Linux mint ssh server

RootUsers

Guides, tutorials, reviews and news for System Administrators.

How To Enable SSH in Linux Mint

By default OpenSSH server is not installed in Linux Mint. This quick guide will show you how to install and enable SSH in Linux Mint, allowing you to remotely access the operating system over the network through SSH.

Enable SSH in Linux Mint

  1. Open Terminal
    We’ll be doing this through command line, so begin by first opening up a terminal. You can find the terminal icon in the task bar in a default GUI installation, as shown below.


Install OpenSSH Server
Within the terminal, run the following command as root to install the OpenSSH server package.

Note: You must do this with root privileges, otherwise you will receive the following error message:

You can become root by running ‘sudo su’, followed by your password. By default the first account that you create when you install Linux Mint should be able to become root.
Check OpenSSH Status
Once installed SSH should be automatically configured to start on system boot, and be already running. We’ll of course check this though rather than just assuming!

We can use ‘systemctl is-enabled’ as shown below to check that ssh is enabled to start automatically on system boot. If it comes back with ‘enabled’ then SSH should automatically start up on boot. If it’s disabled, you can run ‘systemctl enable ssh’ to enable to to start up on system boot.

We can then use ‘systemctl is-active’ as shown below to check that ssh is currently active and running. If it comes back with ‘active’ then SSH is currently running. If it’s not running, you can run ‘systemctl start ssh’ to start it up.

We can also use ‘systemctl status’ to get a quick overview of all information, in the example below we can see that it’s actively running as well as various useful information about the service.


Testing SSH Access
In this example we have confirmed that SSH is configured to start up on system boot automatically and is currently running, so let’s try and SSH to it from an external Windows system! We’ll do this using PuTTY.

You can display the IP address of the Linux Mint machine by running ‘ip a’ from the terminal.

We can see here that the IP address of our Linux Mint system is 192.168.1.20, so we’ll SSH to this using PuTTY from Windows. All you need to do is specify your username and password.

Note that by default the user ‘root’ will not have SSH access. This behaviour can be modified by editing the PermitRootLogin value in the ‘/etc/ssh/sshd_config’ file and then restarting SSH.

That’s all there is too it! We have now successfully established an SSH connection from Windows to Linux Mint, allowing us to remotely administer the Linux system over the network by running various commands via SSH.

Summary

By default Linux Mint does not have OpenSSH server installed. We have shown you how to quickly install and enable SSH in Linux Mint. Once installed we checked that it was configured to automatically start up on system boot and that it was running. Finally we connected to Linux Mint via SSH with PuTTY from a Windows computer.

Источник

Как пользоваться SSH

SSH — (Secure Shell) — это протокол удаленного управления компьютером с операционной системой Linux. В основном ssh используется для удаленного управления серверами через терминал. Если вы администратор нескольких серверов или даже продвинутый веб-мастер, то наверное, вы часто сталкиваетесь с необходимостью работать с тем или иным компьютером по ssh. В Linux для этого используется сервер ssh на машине, к которой нужно подключится и клиент, на той из которой подключаются.

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

Читайте также:  Автоматической смены обоев рабочего стола windows

Базовый синтаксис

Синтаксис команды выглядит следующим образом:

$ ssh [опции] имя пользователя @ сервер [команда]

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

Опции команды SSH

Теперь давайте рассмотрим самые основные опции команды ssh:

  • f — перевести ssh в фоновый режим;
  • g — разрешить удаленным машинам обращаться к локальным портам;
  • l — имя пользователя в системе;
  • n — перенаправить стандартный вывод в /dev/null;
  • p — порт ssh на удаленной машине;
  • q — не показывать сообщения об ошибках;
  • v — режим отладки;
  • x — отключить перенаправление X11;
  • X — включить перенаправление Х11;
  • C — включить сжатие.

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

/.ssh/config но здесь мы это тоже подробно рассматривать не будем.

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

Настройки сервера SSH находятся в файле /etc/ssh/sshd_config. Многие из них мы тоже трогать не будем. Рассмотрим только самые интересные. Сначала откройте файл /etc/ssh/sshd.conf

Порт ssh

По умолчанию ssh работает на порту 22. Но такое поведение небезопасно, поскольку злоумышленник знает этот порт и может попробовать выполнить Bruteforce атаку для перебора пароля. Порт задается строчкой:

Поменяйте значение порта на нужное.

Протокол SSH

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

И приведите ее к такому виду:

Рут доступ

По умолчанию Root доступ по ssh разрешен, но такое поведение очень небезопасно, поэтому раскомментируйте строчку:

Доступ только определенного пользователя к SSH

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

AllowUsers User1, User2, User3
AllowGroups Group1, Group2, Group3

Здесь User1 и Group1 — пользователь и группа к которым нужно разрешить доступ.

Выполнение X11 приложений

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

Основные опции рассмотрели, перед тем как переходить дальше, не забудьте перезагрузить ssh сервер чтобы сохранить изменения:

service sshd restart

Использование SSH

Основная цель этой статьи — показать интересные и полезные способы использования ssh, о которых, возможно, вы не знали. Переходим к самому вкусному — возможности ssh.

Подключение к серверу

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

Выполнить команду

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

ssh user@host ls

Выполнит команду ls на удаленном сервере и вернет ее вывод в текущий терминал.

Выполнить локальный скрипт

Выполним интерпретатор bash на удаленном сервере и передадим ему наш локальный скрипт с помощью перенаправления ввода Bash:

ssh user@host ‘bash -s’

Бекап на удаленный сервер и восстановление

Мы можем сохранять бекэп диска сразу на удаленном сервере с помощью ssh. Перенаправим вывод dd с помощью оператора перенаправления |, затем сохраним его на той стороне в файл:

sudo dd if=/dev/sda | ssh user@host ‘dd of=sda.img’

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

ssh user@host ‘dd if=sda.img’ | dd of=/dev/sda

Здесь и выше /dev/sda имя файла вашего жесткого диска.

Аутентификация без пароля

Использование ssh пароля для входа на сервер не только неудобно но и небезопасно, потому что этот пароль в любой момент может быть подобран. Самый надежный и часто используемый способ аутентификации — с помощью пары ключей RSA. Секретный ключ хранится на компьютере, а публичный используется на сервере для удостоверения пользователя.

Настроить такое поведение очень легко. Сначала создайте ключ командой:

ssh-keygen -t rsa

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

Затем отправляем ключ на сервер:

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

Взять пароль из локального файла

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

Изменить приветствие SSH

При входе по ssh может выводиться приветствие, изменить его очень легко. За это отвечает файл /etc/issue. Просто откройте этот файл и введите нужный текст:

Смотрим неудачные попытки входа SSH

Хотите посмотреть были ли попытки неудачного доступа по ssh к вашему серверу и с каких IP адресов? Запросто, все запросы логируются в файл /var/log/secure, отфильтруем только нужные данные командой:

Читайте также:  Права администратора windows через биос

cat /var/log/secure | grep «Failed password for»

Передача файлов по SSH

Кроме выполнения команд, можно копировать файлы по ssh. Для этого используется утилита scp. Просто укажите файл, который нужно передать, удаленный сервер и папку на сервере, вот:

$ scp /адрес/локального/файла пользователь@ хост: адрес/папки

Кроме утилиты scp, передача файлов ssh может быть выполнена более хитрым способом. Прочитаем файл и с помощью cat, передадим, а там сохраним поток в файл:

cat localfile | ssh user@host «cat > remotefile»

ssh user@host «cat > remotefile»

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

tar czf — /home/user/file | ssh user@host tar -xvzf -C /home/remoteuser/

Такое копирование файлов ssh позволяет отправлять сразу целые папки.

Запуск графических приложений по ssh

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

Затем просто выполняем команду запуска графического приложения на удаленном сервере вот таким образом:

ssh -XC user@remotehost «eclipse»

Как вы уже видели опция X разрешает перенаправление X11 на стороне клиента, а С — сжатие данных.

Завершение сессии SSH

Если вы использовали SSH с нестабильным интернетом, когда соединение время от времени рвется, то вам уже, наверное, надоело закрывать терминал, потому что иначе, на первый взгляд, сеанс никак не прекратить. Когда соединение с удаленным сервером разорвано вы не можете ввести никакую команду и сочетания клавиш Ctrl+C, Ctrl+Z, Ctrl+D не работают. И не будут работать поскольку клиент пытается отправить эти команды на сервер. Но есть решение — Escape последовательности. Чтобы активировать их поддержку добавьте строку:

В файл /etc/ssh/ssh_config. Теперь, чтобы разорвать SSH соединение достаточно нажать Enter и набрать:

Другие управляющие символы можно узнать нажав:

Туннели SSH

С помощью SSH туннелей вы можете пробросить порт с удалённого сервера на локальную машину. Это очень полезно, в первую очередь, для разработчиков. Для того чтобы пробросить порт с удалённой машины локальной используйте опцию -L и такой синтаксис:

$ ssh -L локальный_порт :удаленный_адрес : удаленный_порт пользователь@сервер

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

$ ssh -N -L 5555:127.0.0.1:3306 root@losst-1

Опция -N сообщает, что команду на удалённой машине выполнять не нужно. Локальный порт — 5555, поскольку сервер баз данных слушает на локальном интерфейсе удалённой машины, то и здесь надо указывать адрес 127.0.0.1. А порт MySQL по умолчанию 3306. Если же вы хотите чтобы локальный сервис был доступен на удалённой машине, то следует использовать опцию -R:

$ ssh -N -R 5555:127.0.0.1:3306 root@losst-1

Теперь локальная база данных на порту 3306 будет доступна на удалённом сервере при обращении к порту 5555.

Выводы

Теперь вы знаете как пользоваться SSH. Как видите, технология SSH позволяет сделать намного больше чем можно предположить с первого взгляда, и это еще далеко не все. Какие интересные возможности SSH используете вы при повседневной работе? Поделитесь в комментариях!

Источник

Linux Mint Forums

Welcome to the Linux Mint forums!

How-to Guide Linux Networking with SSH

How-to Guide Linux Networking with SSH

Post by cathbard » Mon Jun 16, 2008 4:37 am

SSH (Secure Shell)

SSH is a networking tool to enable remote logins to another GNU/Linux computer. It is superior to Samba because it allows you to log in as the user and have the same access to the machine as you would if you were sitting at the machine. It allows you not only to move files around but also to run applications.
Mint comes with the ssh client preinstalled but to be able to access it from another computer you have to install the ssh server. You can install ssh with a package manager like mintinstall or synaptic or it can be easily accomplished in a terminal with:

sudo apt install ssh

Now you can go to the other pc and gain terminal access to your Mint machine or access it using a filemanager like Nautilus or Konqueror. For the purposes of this howto we will pretend that the ip address of your machine is 192.168.0.111

To gain remote access in a terminal simply enter:

ssh user@ip-address (ie: ssh mintuser@192.168.0.111)
or if you want to run gui applications enter:
ssh -X user@ip-address
You will then be asked for the user id for the remote computer and be granted a prompt for that machine.

To access the remote pc via ssh using Nautilus:

Toggle to text based location input in browser mode as shown below.

The protocol to use ssh in a browser is called sftp. Enter the address into the location field using the following format:
sftp://user@ip-address (ie sftp://mintuser@192.168.0.111)

Читайте также:  Ubuntu одновременно с windows

Access via Konqueror is achieved by entering the same thing into it’s location field.

Of course, you can now add a bookmark so you don’t have to type the address in every time you want to access it.

Remote Access via Internet

The default port for ssh is 22 so make sure that this is port forwarded in your router if you want access through it. (details on changing the port number for greater security are described later in the «Improving SSH Security» section). Setting up port forwarding on the router varies from router to router so you will have to consult your router’s manual for information on setting that up.

To access the pc through the router from the outside world you will need to setup a static local IP address so the router knows where to direct the port forwarding. We will continue to use 192.168.0.111 as an example.

Go into Administration > Preferences > Network (or from a terminal: network-admin)
Click «unlock», select the network connection and open Properties
disable «Enable roaming mode» and enter the details which will be something like:

Static IP Address
IP address — 192.168.0.111
Subnet mask — 255.255.255.0
Gateway address — 192.168.0.1

These values can be found by simply looking at what was automatically assigned in the connection information on the network monitor on the task bar. You can also get this info, including the MAC address (HWaddr), by typing in a terminal: ifconfig

Now open the sshd config file by entering in a terminal:

gksu gedit /etc/ssh/sshd_config
( or in kde: kdesu kwrite /etc/ssh/sshd_config)

Look for » #ListenAddress 0.0.0.0» and replace it with » ListenAddress 192.168.0.111«

When accessing the machine from the outside world you need to enter the server’s IP address on the internet into the client’s terminal/filemanager and not the local LAN address. If you are accesssing it from the local LAN you use the local address. The configuration settings are all the local address, the internet address is just what a client in the outside world has to use, it has nothing to do with the setup of your ssh server.
The internet address for your ssh server can be gained by examining the router or by simply going to http://whatismyip.com in a web browser.

You will now have to restart the ssh server. Do that by entering this in a terminal:
sudo /etc/init.d/ssh restart

Improving SSH security

The default settings with ssh leave a little to be desired but it is quite simple to improve them
To do this you need to edit the sshd config file. Do this by entering in a terminal:

gksu gedit /etc/ssh/sshd_config
( or in kde: kdesu kwrite /etc/ssh/sshd_config)

Now we can make some modifications.

Port
It is wise to operate ssh on a different port to the default one if you can. Choose something out of the range of most port scanners. Something above 5000 is a good idea if your ISP isn’t one of those Big Brother types that block ports. I will use 5876 for the example but that is an arbitrary choice. Don’t forget to setup your router’s port forwarding to use the same port number.
Look for » Port 22» and change this to » Port 5876»
If you do this it changes how you must address it accordingly:
In a terminal: ssh user@ip-address -p5876 ( ie: ssh mintuser@192.168.0.111 -p5876)
In a filemanager: sftp://user@ip-address:port ( ie: sftp://mintuser@192.168.0.111:5876)

Login Grace Time.
This is how long you allow for the password to be entered. This is set to 120 secs by default, adjust this to a figure you are happy with. 120 is probably ok because we are going to limit the number of retries allowed

Root Login .
Disable this. Why it is on by default baffles me.
Replace » PermitRootLogin yes» with » PermitRootLogin no«

Maximum login attempts.
This is also not set by default. Do it. Add this line to the Authentication section to only allow 2 tries before it boots you out. You can make it 3 if you have really clumsy fingers or a bad memory I guess. Suit yourself but no more than 2 or 3 is probably wise
MaxAuthTries 2

Don’t forget to restart the server after making the changes with:
sudo /etc/init.d/ssh restart

It is possible to force ssh to use rsa keys instead of passwords for greater security but I will not go into that here, that is a topic of it’s own. I suggest that you use a hard to guess password on your pc anyway.

Now you’re all ready to ssh your heart out. Have fun.

Источник

Оцените статью