Ubuntu как обновить openssh
OpenSSH is a powerful collection of tools for the remote control of, and transfer of data between, networked computers. You will also learn about some of the configuration settings possible with the OpenSSH server application and how to change them on your Ubuntu system.
OpenSSH is a freely available version of the Secure Shell (SSH) protocol family of tools for remotely controlling, or transferring files between, computers. Traditional tools used to accomplish these functions, such as telnet or rcp, are insecure and transmit the user’s password in cleartext when used. OpenSSH provides a server daemon and client tools to facilitate secure, encrypted remote control and file transfer operations, effectively replacing the legacy tools.
The OpenSSH server component, sshd, listens continuously for client connections from any of the client tools. When a connection request occurs, sshd sets up the correct connection depending on the type of client tool connecting. For example, if the remote computer is connecting with the ssh client application, the OpenSSH server sets up a remote control session after authentication. If a remote user connects to an OpenSSH server with scp, the OpenSSH server daemon initiates a secure copy of files between the server and client after authentication. OpenSSH can use many authentication methods, including plain password, public key, and Kerberos tickets.
Installation
Installation of the OpenSSH client and server applications is simple. To install the OpenSSH client applications on your Ubuntu system, use this command at a terminal prompt:
To install the OpenSSH server application, and related support files, use this command at a terminal prompt:
Configuration
You may configure the default behavior of the OpenSSH server application, sshd, by editing the file /etc/ssh/sshd_config . For information about the configuration directives used in this file, you may view the appropriate manual page with the following command, issued at a terminal prompt:
There are many directives in the sshd configuration file controlling such things as communication settings, and authentication modes. The following are examples of configuration directives that can be changed by editing the /etc/ssh/sshd_config file.
Tip
Prior to editing the configuration file, you should make a copy of the original file and protect it from writing so you will have the original settings as a reference and to reuse as necessary.
Copy the /etc/ssh/sshd_config file and protect it from writing with the following commands, issued at a terminal prompt:
Furthermore since losing an ssh server might mean losing your way to reach a server, check the configuration after changing it and before restarting the server:
The following are examples of configuration directives you may change:
- To set your OpenSSH to listen on TCP port 2222 instead of the default TCP port 22, change the Port directive as such:
After making changes to the /etc/ssh/sshd_config file, save the file, and restart the sshd server application to effect the changes using the following command at a terminal prompt:
Warning
Many other configuration directives for sshd are available to change the server application’s behavior to fit your needs. Be advised, however, if your only method of access to a server is ssh, and you make a mistake in configuring sshd via the /etc/ssh/sshd_config file, you may find you are locked out of the server upon restarting it. Additionally, if an incorrect configuration directive is supplied, the sshd server may refuse to start, so be extra careful when editing this file on a remote server.
SSH Keys
SSH allow authentication between two hosts without the need of a password. SSH key authentication uses a private key and a public key.
To generate the keys, from a terminal prompt enter:
This will generate the keys using the RSA Algorithm. At the time of this writing, the generated keys will have 3072 bits. You can modify the number of bits by using the -b option. For example, to generate keys with 4096 bits, you can do:
During the process you will be prompted for a password. Simply hit Enter when prompted to create the key.
By default the public key is saved in the file
/.ssh/id_rsa is the private key. Now copy the id_rsa.pub file to the remote host and append it to
/.ssh/authorized_keys by entering:
Finally, double check the permissions on the authorized_keys file, only the authenticated user should have read and write permissions. If the permissions are not correct change them by:
You should now be able to SSH to the host without being prompted for a password.
Import keys from public keyservers
These days many users have already ssh keys registered with services like launchpad or github. Those can be easily imported with:
The prefix lp: is implied and means fetching from launchpad, the alternative gh: will make the tool fetch from github instead.
Two factor authentication with U2F/FIDO
OpenSSH 8.2 added support for U2F/FIDO hardware authentication devices. These devices are used to provide an extra layer of security on top of the existing key-based authentication, as the hardware token needs to be present to finish the authentication.
It’s very simple to use and setup. The only extra step is generate a new keypair that can be used with the hardware device. For that, there are two key types that can be used: ecdsa-sk and ed25519-sk . The former has broader hardware support, while the latter might need a more recent device.
Once the keypair is generated, it can be used as you would normally use any other type of key in openssh. The only requirement is that in order to use the private key, the U2F device has to be present on the host.
For example, plug the U2F device in and generate a keypair to use with it:
I have a server running Ubuntu 14.04, but I have an issue with PCI requirements. I have installed in my server OpenSSH 6.6p1, then I upgraded it to OpenSSH 7.2p, compiling the code with make and make install directly from repositories from OpenSSH, but it seems something is broken because I continue getting the old version after I check dpkg -l openssh\* :
And PCI scanner continues reporting the same issue about that I have to install the latest version of OpenSSH.
This is the CVI Id of the issue: CVE-2016-3115
6 Answers 6
I needed to install the newest OpenSSH as well but I wanted to install it via a package instead of compiling from source.
It worked for me. (Technically only main and universe were necessary here)
Edit (2017-10-04): This answer has been receiving some attention lately and might be out of date now. Remember only main and universe were necessary from this, and I specifically wanted to install this as a package instead of compiling from source. Please be careful with typing random commands from the internet, no matter how well-meaning the stranger (in this case me) is!
This will also cause apt to want to upgrade a lot of other packages, too, no? Perhaps the repository should be disabled once you have your new ssh version. But then, how to get security updates?Tested on Ubuntu 16.04
upgrades ssh-client to latest version. updates alot of other stuff!
remove repository that was added so extra updates don't happen later:
note: For 17.04 change yakety to zesty (untested)
1,831 1 1 gold badge 16 16 silver badges 13 13 bronze badges Worked perfectly, even inside Windows Subsystem for Linux running Ubuntu. This should be the accepted answer. You forgot a single quote after main in the remove step. tried again and worked for me. Are you sure you added the old-releases repo and ran apt-get update ?There are two answers already mentioning the recompile. The way they suggest it may not sound like to be a safe option if you are already connected with ssh. Also they fail to suggest what to do with OpenSSL 1.0.2 vs 1.1.0 issue as by default ./configure finds on Ubuntu 14.04 LTS the 1.1.0 version of OpenSSL. To patch OpenSSL 7.7 sources to work with OpenSSL 1.1.0 here is a patch:
And here comes the trick: you can have TWO SSHDs so you will not lose the current connection. We will install this other sshd to /opt and its config will be in /opt/etc
Here edit the port, take it away from 22 to for example 1888 (make sure port is forwarded/opened/etc)
And now you can start the new sshd
Make sure on restart something (for example systemd) will start this other ssh too.
The 2 sshds are now running simultaneously. You can try to connect with this newly built one. When done, you can safely remove the outdated and security update lacking openssh6.6 from apt, or at least stop the daemon and remove the daemon from startup.
Довольно часто может понадобиться получить доступ к удаленному компьютеру или серверу через интернет. В персслучае сональным компьютером, это может понадобиться для срочного решения какой-либо проблемы, а в случае с сервером это вообще очень распространенная практика. В Linux наиболее часто для решения таких задач используется протокол SSH.
Служба SSH позволяет получить доступ к терминалу удаленного компьютера и выполнить там все необходимые вам команды. При своей простоте она достаточно безопасна, чтобы использоваться для решения серьезных коммерческих задач, так и задач обычных пользователей. В этой статье мы рассмотрим как выполняется установка SSH в Ubuntu 20.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 20.04 выполните:
sudo systemctl enable sshd
Если затем вы захотите удалить службу из автозагрузки, используйте команду disable:
sudo systemctl disable sshd
Что касается клиента ssh, то он уже установлен в системе по умолчанию. Сейчас вы можете попробовать подключиться к локальному 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:
По умолчанию вход от имени суперпользователя включен, рекомендуется отключить такую возможность. Для этого найдите строчку PermitRootLogin и замените ее значение на no:
Чтобы разрешить аутентификацию по ключу, а не по паролю найдите строку PubkeyAuthentication и убедитесь, что ее значение yes.
Как настроить авторизацию по ключу в SSH читайте здесь. После того как все настройки будут завершены, сохраните изменения нажав :w и перезапустите службу SSH:
sudo systemctl restart ssh
Более подробно про настройку и использование различных тонкостей ssh рассказано в статье как использовать ssh.
Если вы изменили порт, то при подключении в клиенте тоже нужно указать новый порт, так как по умолчанию будет использоваться 22, например:
ssh -p 2222 localhost
К тому же, если на компьютере установлен и настроен брандмауэр, то в нем тоже нужно разрешить доступ к новому порту ssh, для этого выполните:
sudo ufw allow 2222
Даже если служба ssh находится на порту по умолчанию, его тоже нужно открыть в брандмауэре если вы собираетесь подключаться к компьютеру через интернет:
sudo ufw allow 22
Настройка ssh Ubuntu 20.04 полностью завершена.
Выводы
Теперь, когда установка SSH в Ubuntu 20.04 завершена, вы можете получить удаленный доступ к своему компьютеру через интернет и быть уверенными что он находится в безопасности. Если у вас остались вопросы, спрашивайте в комментариях.
На завершение видео, где подробно рассказано о том, что такое SSH:
После того, как вы установили систему, в нашем случае Ubuntu или любой другой дистрибутив, его нужно регулярно обновлять. Установка обновлений Ubuntu необходима, чтобы получить новые версии программ, исправления ошибок, а также исправления проблем с безопасностью. Разработка Ubuntu происходит так, что новые версии программ поставляются только с релизом дистрибутива, а затем приходят только обновления исправляющие баги и проблемы с безопасностью. Но это не значит, что не нужно их устанавливать. Кроме того, если вы хотите также иметь самые новые версии программного обеспечения, то можете использовать PPA разработчиков и устанавливать программы от туда. Как правило, разработчики всегда загружают самые новые версии.
В этой статье будет как установить обновления Ubuntu, мы поговорим о том, как обновить программы Ubuntu через терминал, так и через графический интерфейс, с помощью стандартной утилиты - менеджер обновлений.
Обновление программ в Ubuntu через менеджер обновлений
В Ubuntu предусмотрен механизм обновления через менеджер обновлений. Это графическая программа, которая запускается время от времени и предлагает обновить систему если были выпущены новые обновления.
Менеджер обновлений Ubuntu довольно прост и вы можете запустить его через главное меню:
Сразу после запуска программа обновит списки программ из репозиториев, чтобы понять есть ли новые версии пакетов:
Если не возникло никаких ошибок связи с сетью или источниками программного обеспечения, вы увидите такое окно:
Программа говорит, сколько обновлений было найдено и сколько данных нужно скачать через интернет.
Осталось нажать кнопку Установить сейчас и начнется обновление пакетов Ubuntu:
Вы можете посмотреть более подробную информацию о процессе обновления:
После завершения обновления программ в ubuntu менеджер обновлений Ubuntu уведомит вас, что все пакеты были обновлены успешно.
Поведение менеджера обновлений можно настроить. Для этого откройте утилиту Программы и обновления, затем перейдите на вкладку обновления:
Тут вы можете указать какие обновления нужно устанавливать, как часто проверять обновления и что делать при появлении новых обновлений для программного обеспечения, например мы можем их сразу же установить без участия пользователя.
Обновление системы Ubuntu с помощью менеджера обновлений может показаться простым, и это так и есть, пока не возникли ошибки. А при возникновении ошибок нам нужно попытаться обновить систему через терминал, чтобы получить больше информации о проблеме.
Обновление пакетов Ubuntu через терминал
Для обновления через терминал обычно используется инструмент командной строки apt. Эта утилита позволяет не только обновлять пакеты, но и устанавливать и удалять программное обеспечение, искать программы, настраивать репозитории и т д.
Первым делом, нам необходимо выполнить обновление репозиториев ubuntu, для этого используется такая команда обновления ubuntu:
sudo apt update
Утилита нам сразу подсказывает, что есть обновления и мы можем узнать, какие пакеты будут обновлены:
apt list --upgradable
Теперь непосредственно обновление системы Ubuntu. Для этого есть две опции upgrade и full-upgrade (раньше dist-upgrade). Рассмотрим в чем разница между upgrade и dist upgrade:
- upgrade - устанавливает самые новые версии всех пакетов доступные в репозиториях. Использует все репозитории их /etc/apt/souces.list и /etc/apt/souces.list.d/*. То есть обновляются пакеты не только из официальных репозиториев, но и из PPA. Обновляются только установленные пакеты, если же для обновления пакета необходимо установить или удалить другой пакет, такие пакеты обновлены не будут.
- full-upgrade - кроме всего, что делает upgrade, здесь поддерживается умное разрешение зависимостей для новых версий пакетов. Конфликтующие пакеты могут быть удалены, а новые, дополнительные - установлены.
Таким образом, установка обновлений Ubuntu может быть выполнена одной из команд:
sudo apt upgrade
sudo apt full-upgrade
Причем рекомендуется именно вторая команда обновления ubuntu, поскольку она более продумана и обновляет больше пакетов.
Здесь не обязательно обновлять все пакеты, мы можем обновить только один определенный пакет, например браузер:
sudo apt full-update firefox
Опцию full-update мы используем чтобы обновить включая установку новых зависимостей.
Обновление пакетов Ubuntu через Synaptic
sudo apt install synaptic
Запустить программу можно из главного меню:
Главное окно программы выглядит вот так:
Программа работает не совсем привычным образом. Чтобы выполнить операции над пакетами, необходимо их сначала отметить, а затем уже применить нужную операцию. Такая же ситуация с обновлением.
Но давайте обо всем по порядку, сначала необходимо обновить списки пакетов из репозиториев, чтобы программа узнала, есть ли новые версии, это аналогичное действие команды apt update или, тому что выполняется при старте стандартного менеджера обновлений, так сказать проверка обновлений ubuntu. Откройте меню правка и выберите Обновить сведения о пакетах:
Дальше обновление системы Ubuntu. Как я и сказал, нужно сначала отметить пакеты, с которыми будем работать. Поскольку обновляем все, перейдите на вкладку состояние, установленные и нажмите кнопку Отметить все. Программа сама определит, что для данных пакетов есть обновления и если кроме обновления пакетов ubuntu нужно выполнять дополнительные действия, она покажет их:
Можно пойти другим путем, на той же вкладке нажать Ctrl+A, чтобы отметить все пакеты, затем в контекстном меню выбрать Отметить для обновления:
Независимо от способа, дальше нажимаем Применить:
Программа опять покажет, какие изменения будут внесены в систему, нажмите Apply:
Только теперь начнется загрузка пакетов:
Выводы
Установка обновлений Ubuntu, не такое уж сложное дело, но оно должно выполняться периодически, чтобы поддерживать систему в актуальном состоянии и безопасности. Из этой статьи вы узнали целых три способа выполнить обновление пакетов Ubuntu. Этого вполне достаточно, чтобы выбрать подходящий для вас. Часто во время обновлений возникают ошибки, что делать если Ubuntu не обновляется мы рассмотрим в следующей статье.
Читайте также: