Using SSH for Secure Remote Access to a Linux Machine
Aug 03, 2025 pm 01:15 PMInstall and start the SSH service, configure the /etc/ssh/sshd_config file to change the port, disable root login and restrict user access; 2. Use the ssh username@remote_host command to connect from the client, and add the -p parameter if the port changes; 3. Generate an SSH key pair and deploy the public key to the server with ssh-copy-id to achieve password-free secure login; 4. Strengthen security by disabling password authentication, modifying the default port, using non-root users, restricting allowing users and deploying fail2ban; SSH service needs to be restarted after each configuration, and ensure that the new configuration is tested avoids locked. After correctly setting SSH can provide an efficient, encrypted and scriptable remote management solution.
Using SSH for secure remote access to a Linux machine is one of the most common and reliable methods for managing servers and devices over a network. Whether you're administratoring a cloud server, a home lab, or a remote workstation, SSH (Secure Shell) provides an encrypted channel for logging in and executing commands securely.

Here's how to use SSH effectively and securely:
1. Enable and Configure SSH on the Linux Machine
Before you can connect, make sure the SSH server is installed and running on the target machine.

-
On Debian/Ubuntu:
sudo apt update sudo apt install openssh-server sudo systemctl enable ssh sudo systemctl start ssh
On CentOS/RHEL/Rocky Linux:
sudo yum install openssh-server # or dnf on newer versions sudo systemctl enable sshd sudo systemctl start sshd
Check that the service is active:
sudo systemctl status ssh
By default, SSH listens on port 22. The main configuration file is /etc/ssh/sshd_config
. You can customize settings like:
- Changing the default port
- Disabling root login (
PermitRootLogin no
) - Allowing specific users (
AllowUsers alice bob
)
After making changes, restart the SSH service:
sudo systemctl restart ssh
? Tip: Always test changes in a separate terminal before closing your current session to avoid locking yourself out.
2. Connect Using SSH from a Client
From your local machine (Linux, macOS, or Windows with OpenSSH), use:
ssh username@remote_host
Example:
ssh alice@192.168.1.100
If you changed the SSH port:
ssh -p 2222 alice@192.168.1.100
The first time you connect, you'll see a message about the server's authenticity. Verify the fingerprint if possible, then accept it to proceed.
3. Use SSH Keys for Passwordless and More Secure Login
Using SSH keys is more secure than passwords and avoids repeated authentication prompts.
Generate a key pair (on your local machine):
ssh-keygen -t ed25519 -C "your_email@example.com"
Press Enter to accept defaults or specify a location. Optionally, add a passphrase for extra security.
Copy the public key to the remote machine:
ssh-copy-id alice@192.168.1.100
Now you can log in without a password:
ssh alice@192.168.1.100
Behind the scenes, SSH checks your private key against the public key stored in ~/.ssh/authorized_keys
on the server.
? If
ssh-copy-id
isn't available, manually copy the contents of~/.ssh/id_ed25519.pub
and append it to~/.ssh/authorized_keys
on the remote machine.
4. Enhance Security Best Practices
To reduce the risk of unauthorized access:
Disable password authentication (after setting up keys): In
/etc/ssh/sshd_config
:PasswordAuthentication no
This prevents brute-force attacks.
Change the default SSH port :
Port 2222
Helps reduce automated bot scans on port 22.
Use a non-root user with sudo privileges : Avoid enabling
PermitRootLogin yes
. Instead, log in as a regular user and usesudo
when needed.Limit user access :
AllowUsers alice bob
Use fail2ban to block repeated login attempts:
sudo apt install fail2ban
Keep SSH updated and avoid outdated protocols or ciphers.
After any configuration change, always reload SSH:
sudo systemctl reload ssh
Final Notes
SSH is powerful but only as secure as its configuration. Always:
- Use strong keys (preferably Ed25519)
- Disable unused authentication methods
- Regularly audit who has access
With proper setup, SSH gives you a fast, encrypted, and scriptable way to manage remote Linux systems — whether across the room or around the world.
Basically, get the server running, use keys, lock down the config, and stay safe.
The above is the detailed content of Using SSH for Secure Remote Access to a Linux Machine. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

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

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

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Linux's cost of ownership is usually lower than Windows. 1) Linux does not require license fees, saving a lot of costs, while Windows requires purchasing a license. 2) Linux has low hardware requirements and can extend the service life of the device. 3) The Linux community provides free support to reduce maintenance costs. 4) Linux is highly secure and reduces productivity losses. 5) The Linux learning curve is steep, but Windows is easier to use. The choice should be based on specific needs and budget.

LinuxoftenoutperformsWindowsinI/Operformanceduetoitscustomizablekernelandfilesystems,whileWindowsoffersmoreuniformperformanceacrosshardware.1)LinuxexcelswithcustomizableI/OschedulerslikeCFQandDeadline,enhancingperformanceinhigh-throughputapplications

The key to installing dual systems in Linux and Windows is partitioning and boot settings. 1. Preparation includes backing up data and compressing existing partitions to make space; 2. Use Ventoy or Rufus to make Linux boot USB disk, recommend Ubuntu; 3. Select "Coexist with other systems" or manually partition during installation (/at least 20GB, /home remaining space, swap optional); 4. Check the installation of third-party drivers to avoid hardware problems; 5. If you do not enter the Grub boot menu after installation, you can use boot-repair to repair the boot or adjust the BIOS startup sequence. As long as the steps are clear and the operation is done properly, the whole process is not complicated.

The key to enabling EPEL repository is to select the correct installation method according to the system version. First, confirm the system type and version, and use the command cat/etc/os-release to obtain information; second, enable EPEL through dnfinstallepel-release on CentOS/RockyLinux, and the 8 and 9 version commands are the same; third, you need to manually download the corresponding version of the .repo file and install it on RHEL; fourth, you can re-import the GPG key when encountering problems. Note that the old version may not be supported, and you can also consider enabling epel-next to obtain the test package. After completing the above steps, use dnfrepolist to verify that the EPEL repository is successfully added.

Linux usually performs better in web server performance, mainly due to its advantages in kernel optimization, resource management and open source ecosystem. 1) After years of optimization of the Linux kernel, mechanisms such as epoll and kqueue make it more efficient in handling high concurrent requests. 2) Linux provides fine-grained resource management tools such as cgroups. 3) The open source community continuously optimizes Linux performance, and many high-performance web servers such as Nginx are developed on Linux. By contrast, Windows performs well when handling ASP.NET applications and provides better development tools and commercial support.

Newbie users should first clarify their usage requirements when choosing a Linux distribution. 1. Choose Ubuntu or LinuxMint for daily use; programming and development are suitable for Manjaro or Fedora; use Lubuntu and other lightweight systems for old devices; recommend CentOSStream or Debian to learn the underlying principles. 2. Stability is preferred for UbuntuLTS or Debian; you can choose Arch or Manjaro to pursue new features. 3. In terms of community support, Ubuntu and LinuxMint are rich in resources, and Arch documents are technically oriented. 4. In terms of installation difficulty, Ubuntu and LinuxMint are relatively simple, and Arch is suitable for those with basic needs. It is recommended to try it first and then decide.

The steps to add a new hard disk to the Linux system are as follows: 1. Confirm that the hard disk is recognized and use lsblk or fdisk-l to check; 2. Use fdisk or parted partitions, such as fdisk/dev/sdb and create and save; 3. Format the partition to a file system, such as mkfs.ext4/dev/sdb1; 4. Use the mount command for temporary mounts, such as mount/dev/sdb1/mnt/data; 5. Modify /etc/fstab to achieve automatic mount on the computer, and test the mount first to ensure correctness. Be sure to confirm data security before operation to avoid hardware connection problems.

Logs in Linux systems are usually stored in the /var/log directory, which contains a variety of key log files, such as syslog or messages (record system logs), auth.log (record authentication events), kern.log (record kernel messages), dpkg.log or yum.log (record package operations), boot.log (record startup information); log content can be viewed through cat, tail-f or journalctl commands; application logs are often located in subdirectories under /var/log, such as Apache's apache2 or httpd directory, MySQL log files, etc.; at the same time, it is necessary to note that log permissions usually require s
