Nếu bạn thường xuyên làm việc với nhiều máy chủ SSH và mệt mỏi với việc phải cấu hình môi trường làm việc trên từng server, sshrc chính là giải pháp hoàn hảo dành cho bạn. Công cụ mã nguồn mở này giúp bạn mang theo toàn bộ cấu hình cá nhân khi kết nối SSH một cách cực kỳ đơn giản.
Mục lục
sshrc là gì?
sshrc là một công cụ dòng lệnh hoạt động tương tự như lệnh ssh thông thường, nhưng với một tính năng đặc biệt: nó tự động nạp file cấu hình ~/.sshrc
từ máy tính local của bạn sau khi đăng nhập vào server từ xa.
Ban đầu được phát triển bởi Russell Stewart (Russell91), hiện dự án đã được cộng đồng tiếp quản và duy trì sau khi tác giả rời khỏi GitHub.
Tại sao nên sử dụng sshrc?
sshrc đặc biệt hữu ích trong các trường hợp:
- Bạn chia sẻ server với nhiều người dùng khác và không thể chỉnh sửa file
~/.bashrc
chung trên server - Bạn quản lý nhiều server khác nhau và muốn có cùng một bộ cấu hình trên tất cả
- Bạn muốn đảm bảo môi trường làm việc quen thuộc dù đăng nhập vào bất kỳ server nào
Cách sử dụng cơ bản
Bắt đầu với sshrc cực kỳ đơn giản:
$ echo "echo welcome" >> ~/.sshrc<br>
$ sshrc me@myserver<br>
welcome
Bạn có thể thêm các alias, biến môi trường hoặc lệnh thực thi sau khi đăng nhập vào file ~/.sshrc
:
$ echo "alias ..='cd ..'" >> ~/.sshrc<br>
$ sshrc me@myserver<br>
$ type ..<br>
.. is aliased to `cd ..'
Cài đặt sshrc
Trên macOS (sử dụng Homebrew)
$ brew install sshrc
Trên Ubuntu (12.04 hoặc 14.04+)
$ sudo add-apt-repository ppa:russell-s-stewart/ppa<br>
$ sudo apt-get update<br>
$ sudo apt-get install sshrc
Trên các hệ thống khác
$ wget https://raw.githubusercontent.com/Russell91/sshrc/master/sshrc<br>
$ chmod +x sshrc<br>
$ sudo mv sshrc /usr/local/bin
Cấu hình nâng cao
Đối với các file cấu hình không phải script bash (như .vimrc, .inputrc), bạn có thể đặt chúng trong thư mục ~/.sshrc.d
. sshrc sẽ tự động sao chép chúng lên server khi đăng nhập.
Ví dụ cấu hình Vim
$ mkdir -p ~/.sshrc.d<br>
$ echo ':imap <special> jk <Esc>' >> ~/.sshrc.d/.vimrc<br>
$ cat << 'EOF' >> ~/.sshrc<br>
export VIMINIT="let \$MYVIMRC='$SSHHOME/.sshrc.d/.vimrc' | source \$MYVIMRC"<br>
EOF
Tích hợp với Tmux
Bạn có thể cấu hình sshrc làm việc với tmux bằng cách thêm script sau vào ~/.sshrc
:
tmuxrc() {<br>
local TMUXDIR=/tmp/russelltmuxserver<br>
if ! [ -d $TMUXDIR ]; then<br>
rm -rf $TMUXDIR<br>
mkdir -p $TMUXDIR<br>
fi<br>
rm -rf $TMUXDIR/.sshrc.d<br>
cp -r $SSHHOME/.sshrc $SSHHOME/bashsshrc $SSHHOME/sshrc $SSHHOME/.sshrc.d $TMUXDIR<br>
SSHHOME=$TMUXDIR SHELL=$TMUXDIR/bashsshrc /usr/bin/tmux -S $TMUXDIR/tmuxserver $@<br>
}
Mẹo sử dụng hiệu quả
- Tránh đặt toàn bộ thư mục .vim vào ~/.sshrc.d vì có thể vượt quá giới hạn kích thước
- Sử dụng symlink để tránh trùng lặp file cấu hình
- Với cấu hình lớn, hãy sao chép file lên thư mục trên server và dùng ~/.sshrc để tự động nạp
- Thêm
compdef sshrc=ssh
vào .zshrc để bật tính năng tự động hoàn thành lệnh
Với sshrc, bạn có thể mang theo toàn bộ môi trường làm việc ưa thích mỗi khi kết nối SSH, giúp tăng hiệu suất làm việc đáng kể khi phải quản lý nhiều server khác nhau.