Cấu hình shortcut ssh config

Giới thiệu

Hiện nay server là vps đã khá phổ biến, vì vậy việc cần ssh vào server để cài đặt cấu hình đã rất quen thuộc đối với những người hay phải quản trị server. Việc nhớ tất cả các thông tin của server để ssh vào chạy lệnh là một công việc phức tạp, nhất là đối với ai quản trị nhiều server cùng một lúc.

Hôm này mình giới thiệu cho các bạn một cách có thể rút ngắn thời gian ssh vào server cũng như không cần nhớ những thông tin phức tạp của server như ip, port ...

Bạn có thể cấu hình máy khách OpenSSH ssh của bạn bằng các tệp tin khác nhau như sau để tiết kiệm thời gian và nhập các tùy chọn dòng lệnh ssh thường xuyên được sử dụng như port, user, hostname, identity-file và nhiều hơn nữa:

Cấu hình.

  • Đầu tiên bạn cần edit file ~/.ssh/config bằng một text editor nào đó, ví dụ như nano, vi ...
  • Cú pháp để config có dạng như sau:
config value
config1 value1 value2
  • Nếu trên máy tính của bạn chưa tồn tại thư mục .ssh thì cần chạy lệnh sau:
mkdir -p $HOME/.ssh
chmod 0700 $HOME/.ssh

Một số option hay dùng để cấu hình ssh config như sau:

  • Host: Tên viết tắt của máy chủ, bạn có thể đặt bất kì cái nào dễ nhớ nhất, giả sử tên dự án
  • HostName: Địa chỉ ip của máy chủ
  • User : User để ssh vào server.
  • IdentityFile: Chính là public key của ssh, mặc định nó sẽ tìm trong ~/.ssh/id_rsa nếu bạn không config.
  • ProxyCommand: Command đặc biệt khi connect vào server
  • Port: Port khi connect vào server, mặc định sẽ là 22
  • ServerAliveInterval: Time out khi connect vào server.

Ví dụ

  • Giả sủ bạn muốn connect vào server 192.168.1.100 với port là 4444 ta có các lệnh cấu hình như sau:
nano ~/.ssh/config
  • Đưa đoạn code sau vào:
Host viblo_project
        Hostname 192.168.1.100
        User root
        Port 4444

Ấn crt + x và y để lưu lại.

bay h để ssh vào server 192.168.1.100 thay vì dùng lệnh ssh [email protected] -p 4444, bạn chỉ cần gõ ssh viblo_project vậy là xong.

  • Nếu bạn có nhiều server chỉ cần thêm các server tiếp theo vào bên dưới:
### default for all ##
Host *
     ForwardAgent no
     ForwardX11 no
     ForwardX11Trusted yes
     User nixcraft
     Port 22
     Protocol 2
     ServerAliveInterval 60
     ServerAliveCountMax 30
 
## override as per host ##
Host server1
     HostName server1.cyberciti.biz
     User nixcraft
     Port 4242
     IdentityFile /nfs/shared/users/nixcraft/keys/server1/id_rsa
 
## Home nas server ##
Host nas01
     HostName 192.168.1.100
     User root
     IdentityFile ~/.ssh/nas01.key
 
## Login AWS Cloud ##
Host aws.apache
     HostName 1.2.3.4
     User wwwdata
     IdentityFile ~/.ssh/aws.apache.key
 
## Login to internal lan server at 192.168.0.251 via our public uk office ssh based gateway using ##
## $ ssh uk.gw.lan ##
Host uk.gw.lan uk.lan
     HostName 192.168.0.251
     User nixcraft
     ProxyCommand  ssh [email protected] nc %h %p 2> /dev/null
 
## Our Us Proxy Server ##
## Forward all local port 3128 traffic to port 3128 on the remote vps1.cyberciti.biz server ## 
## $ ssh -f -N  proxyus ##
Host proxyus
    HostName vps1.cyberciti.biz
    User breakfree
    IdentityFile ~/.ssh/vps1.cyberciti.biz.key
    LocalForward 3128 127.0.0.1:3128

Tăng Tốc độ ssh session

Thêm đoạn sau vào config:

ControlPath ~/.ssh/controlmasters/%[email protected]%h:%p
ControlMaster auto

Sau khi thêm đoạn code sẽ như sau:

Host viblo_project
        Hostname 192.168.1.100
        User root
        Port 4444
        ControlPath ~/.ssh/controlmasters/%[email protected]%h:%p
      ControlMaster auto

Tham khảo: