Study guide

3.1 Access Remote Systems Using SSH

Red Hat Certified System Administrator RHCSA

Track your progress as you read

Finished sections get a check mark.

1 Introduction & Exam Overview

1.1 Current Exam Facts 1.2 Lab Setup & Performance-Based Study Strategy

2 Essential Tools: Shell, Redirection & Text Analysis

2.1 Shell Prompt and Command Syntax 2.2 Input-Output Redirection and Pipes 2.3 grep and Regular Expressions for Text Analysis

3 Essential Tools: Remote Access, Users & Text Editing

3.1 Access Remote Systems Using SSH 3.2 Log In and Switch Users in Multiuser Targets 3.3 Create and Edit Text Files

4 Essential Tools: Files, Links & Archives

4.1 Create, Delete, Copy, and Move Files and Directories 4.2 Hard and Soft Links 4.3 Archive and Compress with tar, gzip, and bzip2

5 Essential Tools: Permissions & System Documentation

5.1 List, Set, and Change Standard ugo/rwx Permissions 5.2 System Documentation: man, info, and /usr/share/doc

6 Manage Software: RPM and Flatpak

6.1 Configure Access to RPM Repositories 6.2 Install and Remove RPM Software Packages 6.3 Configure Access to Flatpak Repositories 6.4 Install and Remove Flatpak Software Packages

7 Create Simple Shell Scripts

7.1 Conditional Execution: if, test, and [] 7.2 Looping Constructs for Files and Input 7.3 Process Script Inputs ($1, $2, and Beyond) 7.4 Process Shell Command Output in Scripts

8 Operate Running Systems: Boot and Recovery

8.1 Boot, Reboot, and Shut Down a System Normally 8.2 Boot Systems into Different Targets Manually 8.3 Interrupt the Boot Process to Gain Access

9 Operate Running Systems: Processes and Tuning

9.1 Identify and Kill CPU/Memory Intensive Processes 9.2 Adjust Process Scheduling 9.3 Manage Tuning Profiles

10 Operate Running Systems: Logs, Services & File Transfer

10.1 Locate and Interpret System Log Files and Journals 10.2 Preserve System Journals 10.3 Start, Stop, and Check Status of Network Services 10.4 Securely Transfer Files Between Systems

11 Configure Local Storage: Partitions and LVM

11.1 List, Create, and Delete Partitions on GPT Disks 11.2 Create and Remove Physical Volumes 11.3 Assign Physical Volumes to Volume Groups 11.4 Create and Delete Logical Volumes

12 Configure Local Storage: Mounting and Expansion

12.1 Mount File Systems at Boot by UUID or Label 12.2 Add Partitions, Logical Volumes, and Swap Non-Destructively

13 Create and Configure File Systems: Local FS and Permissions

13.1 Create, Mount, and Use VFAT, ext4, and XFS File Systems 13.2 Extend Existing Logical Volumes 13.3 Diagnose and Correct File Permission Problems

14 Create and Configure File Systems: NFS and autofs

14.1 Mount and Unmount Network File Systems Using NFS 14.2 Configure autofs

15 Deploy and Maintain: Scheduling, Services & Targets

15.1 Schedule Tasks with at, cron, and systemd Timers 15.2 Start, Stop, and Enable Services at Boot 15.3 Configure Systems to Boot into a Specific Target

16 Deploy and Maintain: Time, Software Updates & Bootloader

16.1 Configure Time Service Clients 16.2 Install and Update Software from CDN, Remote Repos, and Local Files 16.3 Modify the System Bootloader

17 Manage Basic Networking

17.1 Configure IPv4 and IPv6 Addresses 17.2 Configure Hostname Resolution 17.3 Configure Network Services to Start Automatically at Boot 17.4 Restrict Network Access Using firewalld and firewall-cmd

18 Manage Users and Groups

18.1 Create, Delete, and Modify Local User Accounts 18.2 Change Passwords and Adjust Password Aging 18.3 Create, Delete, and Modify Local Groups and Memberships 18.4 Configure Privileged Access

19 Manage Security: Firewall, umask & SSH Keys

19.1 Configure Firewall Settings with firewall-cmd and firewalld 19.2 Manage Default File Permissions 19.3 Configure Key-Based Authentication for SSH

20 Manage Security: SELinux Modes and Contexts

20.1 Set Enforcing and Permissive Modes for SELinux 20.2 List and Identify SELinux File and Process Contexts 20.3 Restore Default File Contexts

21 Manage Security: SELinux Ports and Booleans

21.1 Manage SELinux Port Labels 21.2 Use Boolean Settings to Modify SELinux Settings

3.1 Access Remote Systems Using SSH

Key Takeaways Explain This Topic AI

OpenSSH is the standard remote-access stack on RHEL: the client is the ssh command, and the server is the sshd service (package openssh-server).

First connections store the remote host key in ~/.ssh/known_hosts; a later key mismatch is a security warning, not something to ignore on production systems.

Password or key-based login both work on the exam; persistent client settings belong in ~/.ssh/config and server settings in /etc/ssh/sshd_config (restart sshd after server changes).

RHCSA tasks must survive reboot: enable sshd with systemctl enable --now sshd so remote access returns after a restart.

Use ssh user@host, optional -p for non-default ports, and -i for a private key path when the default identity is not enough.

Last updated: August 2026

Remote access is a core RHCSA (EX200) essential-tools skill. On Red Hat Enterprise Linux, remote shell access is provided by OpenSSH . You connect with the ssh client; the remote machine runs the sshd daemon. Exam scenarios frequently place you on one host and require you to configure or verify another host over the network. Configurations you change for SSH must remain correct after reboot —the same persistence rule that applies across EX200 objectives.

Why SSH Matters on the Exam

Performance-based tasks are not limited to a single console. You may:

  • Log into a secondary server to install packages, edit configs, or check services
  • Copy keys or verify that sshd is enabled so administrators can reach the system later
  • Troubleshoot “cannot connect” by checking the service, firewall, and listen port

OpenSSH encrypts the session. Unlike unencrypted legacy tools (telnet, rsh), SSH protects credentials and command traffic. RHEL ships OpenSSH components as packages such as openssh-clients (client tools) and openssh-server (the daemon). In a normal RHEL server install, the client is present; ensure the server package and service are installed and running when the machine must accept remote logins.

  • Basic Connection Syntax
  • The most common form is: ssh username@hostname_or_ip
  • Examples: ssh student@servera.lab.example.com
  • ssh root@192.168.122.50
  • ssh -p 2222 admin@bastion.example.com

Useful client options for administrators:

  • Option Purpose
  • p port Connect to a non-default SSH port (default is 22 )
  • i /path/to/key Use a specific private key for authentication
  • l user Specify login name (equivalent to user@host )
  • v / -vv Increase verbosity for connection debugging
  • o Option=value Pass a single config option on the command line

If you omit the username, ssh uses your local account name. On multiuser systems that is often wrong for remote admin work—always be explicit when the remote account differs.

After a successful login you receive a remote shell. Exit with exit or Ctrl+D . That ends only the session; it does not stop sshd on the server.

Host Keys and known_hosts

The first time you connect to a host, the client shows the remote host key fingerprint and asks whether to continue. If you accept, the client stores the key in ~/.ssh/known_hosts (for that local user). Later connections compare the presented key to the stored one.

Match — connection proceeds (trust established for that host identity)

Mismatch — ssh warns about a possible man-in-the-middle attack or that the server was rebuilt with a new host key

On a lab rebuild, a mismatch is common: the VM was recreated and generated new host keys under /etc/ssh/ . Administrators often remove the stale line for that host from ~/.ssh/known_hosts (or use ssh-keygen -R hostname ) and reconnect carefully after verifying the new fingerprint through a trusted channel.

Do not habitually disable host-key checks ( StrictHostKeyChecking=no ) on production systems. For exam labs, understand the mechanism so a WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED message does not block you from finishing a task.

System-wide known hosts can also appear in /etc/ssh/ssh_known_hosts , but day-to-day troubleshooting almost always starts with the user’s ~/.ssh/known_hosts .

  • Authentication: Passwords and Keys
  • Password authentication

If the server allows it, ssh prompts for the remote account password. Server policy lives in /etc/ssh/sshd_config (and drop-in files under /etc/ssh/sshd_config.d/ on modern RHEL). Settings such as PasswordAuthentication control whether password logins are accepted. After editing server config, validate and reload: sudo sshd -t

sudo systemctl reload sshd

sshd -t tests syntax before you break remote access. Prefer reload over a full restart when possible so existing sessions stay up while new settings apply.

Public-key authentication

Key-based login is common for automation and for admin accounts:

Generate a key pair on the client (if you do not already have one): ssh-keygen (default files ~/.ssh/id_ed25519 / id_ed25519.pub or RSA variants).

Install the public key on the remote account’s ~/.ssh/authorized_keys (tools like ssh-copy-id user@host automate this when password login still works).

Connect; the client proves possession of the matching private key.

Private keys stay on the client and must remain mode-restricted (typically 600 ). Public keys are safe to distribute to servers you administer. For RHCSA, know the paths and that key auth is configured per remote user under that user’s home directory—not only under root.

  • Client Config: ~/.ssh/config
  • For repeated admin tasks, put defaults in ~/.ssh/config (permissions typically 600 ): Host servera
  • HostName servera.lab.example.com
  • User student
  • Port 22
  • IdentityFile ~/.ssh/id_ed25519
  • Host bastion
  • HostName 10.0.0.5
  • User admin
  • Port 2222

Then ssh servera expands those options. This file is client-side and persists for that user across reboots as long as the home directory (and file) remain. It does not configure the remote daemon.

Command-line options override config file settings for a single invocation—useful when testing without editing the file.

  • Server Service Control and Persistence
  • On the machine that must accept SSH: sudo systemctl status sshd
  • sudo systemctl start sshd
  • sudo systemctl enable --now sshd
  • start — run now until stop or reboot
  • enable — create the systemd symlink so sshd starts at boot
  • enable --now — both at once (preferred when the exam requires lasting remote access)

Because EX200 grades persistence after reboot , finishing “SSH works right now” is incomplete if sshd is not enabled (or if a firewall rule you added was not made permanent—firewall details appear in networking/security objectives, but the same reboot mindset applies).

Confirm listening with ss -tlnp | grep ssh or systemctl status sshd after changes. Package install alone does not always mean the service is enabled; verify explicitly.

Practical Exam Workflow

From your workstation or primary lab host, ssh user@target .

If the connection fails: ping/name resolution, systemctl is-active sshd on the target (via console), listen port, and host firewall allowing SSH.

Accept or fix host keys using known_hosts knowledge—not by blindly disabling checks without understanding risk.

Use ~/.ssh/config for multi-host labs so you do not mistype users and ports under time pressure.

After any server-side sshd_config change: sshd -t , reload, and retest from a second session before closing your only working login .

  • Common Pitfalls
  • Editing /etc/ssh/sshd_config but forgetting to reload sshd
  • Enabling password or key policy in the wrong file or with a syntax error that prevents sshd from starting
  • Assuming ssh root@host works when root login is disabled by policy ( PermitRootLogin )
  • Leaving sshd disabled so a grader reboot loses remote access
  • Confusing client ~/.ssh/config with server sshd_config

Master the client connection path, host-key trust model, basic identity files, and systemd enablement. Those skills unlock every later objective that assumes you can reach another RHEL system over the network.