Step 1: Root user login
First, use the root user to log in to the remote host (assuming the IP address is 128.199.209.242 ).
ssh root@128.199.209.242
At this time, a warning will appear on the command line, indicating that this is a new address and there are security risks. Type yes to accept. Then, you should be able to log in to the remote host successfully.
Next, change the password of the root user.
passwd
Step 2: Create a new user
First, add a user group (assumed to be the admin user group here).
addgroup admin
Then, add a new user (assumed to be bill).
useradd -d /home/bill -s /bin/bash -m bill
In the above command, parameter d specifies the user's home directory, parameter s specifies the user's shell, and parameter m indicates that if the directory does not exist, create the directory.
Next, set the new user’s password.
Free video tutorial recommendation: linux video tutorial
passwd bill
Add a new user (bill) to the user group (admin).
usermod -a -G admin bill
Next, set sudo permissions for the new user.
visudo
The visudo command will open the sudo setting file /etc/sudoers and find the following line.
root ALL=(ALL:ALL) ALL
Below this line, add another line.
root ALL=(ALL:ALL) ALL bill ALL=(ALL) NOPASSWD: ALL
The NOPASSWD above means that when switching sudo, you do not need to enter a password. I like this to save trouble. For security reasons, a password can also be enforced.
root ALL=(ALL:ALL) ALL bill ALL=(ALL:ALL) ALL
Then, log out as the root user first, then log in as the new user, and check whether everything is normal up to this point.
exit ssh bill@128.199.209.242
Step Three: SSH Settings
First, make sure the machine has an SSH public key (usually the file ~/.ssh/id_rsa.pub), if not If so, use the ssh-keygen command to generate one (please refer to the SSH tutorial I wrote).
Open another shell window on the local machine and copy the local public key to the authorized_keys file of the server.
cat ~/.ssh/id_rsa.pub | ssh bill@128.199.209.242 'mkdir -p .ssh && cat - >> ~/.ssh/authorized_keys' # 或者在服务器端,运行下面命令 echo "ssh-rsa [your public key]" > ~/.ssh/authorized_keys
Then, enter the server and edit the SSH configuration file /etc/ssh/sshd_config.
sudo cp /etc/ssh/sshd_config ~ sudo nano /etc/ssh/sshd_config
In the configuration file, change the default port 22 of SSH to any integer from 1025 to 65536 (assumed to be 25000 here).
Port 25000
Then, check whether several settings are set as follows, making sure to remove the # sign in front.
Protocol 2 PermitRootLogin no PermitEmptyPasswords no PasswordAuthentication no RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys UseDNS no
The above mainly prohibits root user login and password login.
Next, at the end of the configuration file, specify the users allowed to log in.
AllowUsers bill
After saving, exit file editing.
Next, change the permissions of the authorized_keys file.
sudo chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh/
Then, restart the SSHD.
sudo service ssh restart # 或者 sudo /etc/init.d/ssh restart
The following step is optional. Create a config file in the ~/.ssh folder of your local machine with the following content.
Host s1 HostName 128.199.209.242 User bill Port 25000
Finally, open another shell window on this machine to test whether SSH can log in successfully.
ssh s1
Step 4: Running environment configuration
First, check the regional settings of the server.
locale
If the result is not en_US.UTF-8, it is recommended to set it to it.
sudo locale-gen en_US en_US.UTF-8 en_CA.UTF-8 sudo dpkg-reconfigure locales
Then, update the software.
sudo apt-get update sudo apt-get upgrade
Finally, make some security settings as needed, such as setting up a firewall, closing ports other than HTTP, HTTPs, and SSH, and installing Fail2Ban.
Recommended related articles and tutorials: linux tutorial
The above is the detailed content of How to configure your own linux server. For more information, please follow other related articles on the PHP Chinese website!

随着互联网的不断发展和普及,Web应用程序已成为人们日常生活中必不可少的一部分,这也决定了Web应用程序的安全问题非常重要。在Web应用程序中,Cookie被广泛使用来实现用户身份认证等功能,然而Cookie也存在着安全风险,因此在配置Nginx时,必须设定适当的Cookie安全策略,以保证Cookie的安全性。下面是一些在Nginx中配置Cookie安全策

使用CMake构建Linux内核的配置指南概述在Linux开发中,构建和配置内核是一个重要的环节。对于大多数人来说,使用Kconfig和Makefile是最常见的配置方式。然而,使用CMake来构建和配置Linux内核也是一个灵活且强大的选择。本文将介绍如何使用CMake来构建和配置Linux内核,并附上一些代码示例。安装CMake首先,我们需要安装CMak

如何配置MySQL连接池的最大连接数?MySQL是一个开源的关系型数据库管理系统,被广泛应用于各种领域的数据存储与管理。在使用MySQL时,我们常常需要使用连接池来管理数据库连接,以提高性能和资源利用率。连接池是一种维护和管理数据库连接的技术,它能够在需要时提供数据库连接,并在不需要时回收连接,从而减少了连接的重复创建和销毁。而连接池的最大连接数则是连接池所

使用GDB调试Linux内核的常用配置技巧引言:在Linux开发中,使用GDB调试内核是一项非常重要的技能。GDB是一款功能强大的调试工具,可以帮助开发者快速定位和解决内核中的bug。本文将介绍一些常用的GDB配置技巧,以及如何使用GDB调试Linux内核。一、配置GDB环境首先,我们需要在Linux系统上配置GDB的环境。请确保你的系统已经安装了GDB工具

Nginx错误页面配置,优雅处理网站故障在现代互联网时代,一个高度稳定和可靠的网站是任何企业或个人追求的目标。然而,由于各种原因,网站可能会经历故障或错误,这可能是由于网络问题、服务器问题或应用程序错误等。为了提供更好的用户体验和优雅地处理任何可能发生的错误,Nginx作为一个强大的Web服务器软件,不仅能够提供高性能的服务,还能够灵活地配置错误页面。在Ng

在Linux服务器上配置防火墙非常重要,它可以有效地保护服务器免受恶意攻击。在Ubuntu操作系统上,我们可以使用UFW防火墙来保护服务器的安全。在本文中,我们将介绍如何使用宝塔面板配置UFW防火墙。第一步:安装宝塔面板首先,我们需要在Ubuntu上安装宝塔面板。您可以在宝塔官网免费下载宝塔面板的安装包,然后在命令行中运行以下命令来安装宝塔面板:$wget

随着云计算、大数据和物联网等技术的日益普及,虚拟化技术成为了当今IT领域的热门话题。虚拟化是通过将一台物理主机划分为多个独立的虚拟机,实现资源的共享和管理的方法。虚拟网络是虚拟化的其中一个重要组成部分,能够满足不同应用之间的网络隔离和互动需求。在本文中,我们将介绍如何使用Linux进行虚拟网络配置。一、Linux虚拟网络的概述在物理网络中,网卡是连接网络设备

IntelTXT(TrustedExecutionTechnology,可信执行技术)是一种硬件帮助保护系统安全的技术。它通过使用硬件测量模块(TPM)来确保系统启动过程中的完整性,并且可以防止恶意软件攻击。在本文中,我们将讨论IntelTXT的安装和配置步骤,帮助你更好地保护你的系统安全。第一步:检查硬件要求安装IntelTXT前,需要先检查计算


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Dreamweaver CS6
Visual web development tools

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment
