Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. SSH
  3. sshrc

sshrc

Shell

A command-line tool that sources your local shell configuration files when SSHing into remote servers.

GitHubGitHub
104 stars168 forks0 contributors

What is sshrc?

sshrc is a command-line tool that works like SSH but sources your local shell configuration files (e.g., `.bashrc`, `.vimrc`) on remote servers after login. It solves the problem of maintaining a consistent development environment across multiple servers without manually copying or editing configuration files on each server.

Target Audience

Developers and system administrators who frequently SSH into multiple servers and want to retain their personalized shell configurations, aliases, and environment variables remotely.

Value Proposition

Developers choose sshrc because it simplifies remote server management by automatically applying local configurations, avoids conflicts in multi-user environments, and supports advanced setups like tmux integration without modifying server-side files.

Overview

bring your .bashrc, .vimrc, etc. with you when you ssh

Use Cases

Best For

  • Maintaining consistent shell aliases and environment variables across multiple servers
  • Sharing a server with other users while keeping personal configurations isolated
  • Automatically applying vim or other editor configurations when SSHing into remote machines
  • Setting up development environments quickly on new or temporary servers
  • Using tmux with personalized configurations on remote sessions
  • Avoiding manual copying of configuration files to each server

Not Ideal For

  • Environments with strict security policies that prohibit execution of user-provided scripts on remote servers
  • Use cases where SSH connection speed is critical and cannot tolerate additional overhead from file transfers
  • Servers with aggressive /tmp cleanup policies that would remove sshrc configurations on reboot
  • Teams already using infrastructure-as-code tools like Ansible for centralized server configuration management

Pros & Cons

Pros

Portable Environment Setup

Sources your local ~/.sshrc file on remote servers, enabling custom aliases, environment variables, and functions without modifying server-side configuration files.

User Isolation

Uses unique temporary directories per user, ensuring configurations don't interfere with other users on the same server, even if they also use sshrc.

Flexible Config Management

Copies non-shell configuration files from ~/.sshrc.d to $SSHHOME/.sshrc.d on the server, allowing programs like vim to load personalized settings via environment variables.

tmux Integration

Supports tmux sessions by setting the SHELL environment variable, making configurations available in new tmux servers without affecting shared sessions.

Cons

Login Performance Impact

Transferring files from ~/.sshrc.d can slow SSH login, and the README warns that servers may block attempts if folder contents exceed 1MB.

tmux Configuration Complexity

tmux integration requires careful setup to avoid accessing the vanilla tmux server, which could leak configurations to other users, as noted in the README.

Limited Package Availability

Official apt installation is only for Ubuntu 12.04 and 14.04; other systems require manual download and PATH setup, which can be cumbersome.

Non-Persistent Storage

Configurations are stored in /tmp directories, which may be cleaned on server reboot, losing settings and requiring re-initialization.

Frequently Asked Questions

Quick Stats

Stars104
Forks168
Contributors0
Open Issues0
Last commit12 years ago
CreatedSince 2014

Tags

#environment-management#bashrc#remote-development#cli-tool#shell-configuration#multi-server#tmux#vimrc#ssh

Included in

SSH2.8k
Auto-fetched 10 hours ago

Related Projects

xxhxxh

🚀 Bring your favorite shell wherever you go through the ssh. Xonsh shell, fish, zsh, osquery and so on.

Stars6,083
Forks123
Last commit3 months ago
ssh-pingssh-ping

Making SSH more convenient

Stars886
Forks25
Last commit3 years ago
ssh-vaultssh-vault

🌰 encrypt/decrypt using ssh keys

Stars508
Forks33
Last commit5 days ago
SSHPry v2SSHPry v2

SSHPry v2 - Spy & Control os SSH Connected client's TTY

Stars400
Forks77
Last commit9 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub