Skip to content
shellmap

rloginRemote login — DEPRECATED unencrypted predecessor to ssh across all 5 shells

Equivalents in every shell

Bashunix
ssh user@host

Use `ssh` — `rlogin` (TCP/513, unencrypted) was removed from Debian/Ubuntu by default (Stretch dropped it from the default install) and from RHEL/Fedora in RHEL 9. The drop-in replacement for an interactive login session is plain `ssh user@host`.

Zshunix
ssh user@host

macOS removed `rlogin` in 10.13 (High Sierra) along with `rsh` and `telnet`. `ssh user@host` is the fully featured replacement; pair with `ssh-copy-id user@host` to seed the key once, then logins are passwordless.

Fishunix
ssh user@host

Same — fish ships nothing for legacy r-commands. `ssh user@host` is the universal answer; for a richer terminal multiplexer experience over the link, `ssh user@host -t tmux attach` reattaches a remote tmux session on connect.

PowerShellwindows
ssh user@host

Windows never shipped `rlogin.exe` natively. The OpenSSH Client (built in since Windows 10 1809) handles the use case. For Windows-to-Windows interactive remoting use `Enter-PSSession -ComputerName host` (WinRM), which gives you an interactive PowerShell prompt rather than a cmd shell.

cmd.exewindows
ssh user@host

No native `rlogin`. The OpenSSH `ssh` client works identically from cmd.exe. For Windows-style interactive remoting use `winrs -r:host cmd` (cmd shell over WinRM); for full-screen GUI, `mstsc /v:host` (Remote Desktop) is the canonical interactive answer.

Worked examples

Open an interactive login session on a remote host

Bash
ssh user@host
PowerShell
Enter-PSSession -ComputerName host
cmd.exe
winrs -r:host cmd

Forward $TERM and locale (matches `rlogin` defaults)

Bash
ssh -t user@host
Zsh
ssh -t user@host

Login on a non-default port

Bash
ssh -p 2222 user@host
PowerShell
ssh -p 2222 user@host

Gotchas

  • `rlogin` shared the same TCP/513 plaintext channel as `rsh` — credentials on the wire, no encryption, no MAC. The protocol was actively used to compromise commodity Unix machines from the 1990s onward. This is why it is gone, not why it should be patched.
  • `rlogin` automatically forwarded `$TERM`, `$DISPLAY`, and the local username — features ssh now handles via `SendEnv` / `ForwardX11` / `User`. For matching legacy behaviour: `ssh -X -o "SendEnv TERM" -l $USER host`. (X11 forwarding over ssh requires `X11Forwarding yes` in sshd_config plus an X server on the client.)
  • Some legacy automation parses `~/.rhosts` for trust — ssh deliberately ignores it. The closest ssh equivalent is `HostbasedAuthentication yes` + `~/.shosts`, which most distros disable by default. Migrate to per-user `~/.ssh/authorized_keys` instead; do not enable HostbasedAuth lightly.
  • `rlogin` had no concept of host-key verification — it trusted DNS and IP completely. Migrating scripts must add `StrictHostKeyChecking accept-new` (OpenSSH ≥ 7.6) or seed a `~/.ssh/known_hosts` file ahead of time, otherwise the first ssh fails the unattended login the legacy script expected.
  • `rlogin` allowed the local username to flow as the remote login name with no flag (no `-l user`). The `ssh` equivalent is `ssh host` (no user prefix) — same behaviour. Scripts that relied on `rlogin host` running as the local user need NO change beyond renaming the binary.

WSL & PowerShell Core notes

pwshFor Windows-to-Windows interactive remoting, `Enter-PSSession -ComputerName host` over WinRM is the native PowerShell answer (uses Kerberos in domain environments, NTLM otherwise). For cross-platform interactive PS shells over SSH, `Enter-PSSession -HostName user@host -SSHTransport` (PS 6+) requires sshd configured with the `Subsystem powershell pwsh -sshs -nologo` line.
WSLFrom WSL, `ssh user@host` works identically to native Linux. From Windows pwsh, `wsl ssh user@host` is occasionally useful when WSL's ssh client has different `~/.ssh/config` / agent setup than Windows OpenSSH (separate trust stores).

Related commands