Trong các Server Linux thì mặc định thường đã có dịch vụ SSH chạy sẵn chờ client kết nối đến Server qua giao thức an toàn này.

Mỗi khi một user được thêm vào Linux, mặc định user đó có thể truy cập đến Server qua SSH thông qua các cơ chế xác thức bằng mật khẩu hay bằng cặp khóa Public/Private key.

Cấu dịch vụ SSH trên Server

Các thông tin cấu hình dịch vụ SSH nằm ở file: /etc/ssh/sshd_config

Bạn chỉ việc mở file đó ra (bằng trình soạn thảo vim, nano) và thay đổi các thông số phù hợp mong muốn:

# vi /etc/ssh/sshd_config

Một số tham có thể tham khảo để cấu hình

  • Cấm yêu cầu login mà password rỗng
    PermitEmptyPasswords no
    
  • Không cho root truy cập
    PermitRootLogin no
    
  • Chỉ cho phép một số user có tên liệt kê truy cập
    AllowUsers user1 user2 user3
    
  • Cấm user nào đó truy cập
    DenyUsers user4 user5
    
  • Cho xác thực bằng password
    PasswordAuthentication yes
    
  • Đổi Port (mặc định là 22), để an toàn đổi sang port riêng nào đó ví dụ 2111
    Port 2111
    
  • Kích hoạt chế độ xác thực bằng Key (xem thêm Xác thực SSH KEY)
    PubkeyAuthentication yes
    

Cài đặt xác thực SSH Key

Giả sử cài đặt để user có tên abc để client truy cập SSH bằng SSH Key qua user này. Như đã biết khi Linux thêm user có tên abc thì thư mục mặc định của user đó sẽ là /home/abc/

Trong đó thông tin Public key sẽ chứa trong thư mục /home/abc/.ssh

Nếu thư mục đó chưa tồn tại hãy tạo ra nó

# mkdir /home/abc/.ssh

Giờ hãy vào chính thư mục đó và dùng công cụ có tên ssh-keygen để sinh ra cặp Public/Private key

# ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /home/abc/.ssh/id_rsa

Sau đó nhấn Enter cho các tham số tiếp theo, cuối cùng lệnh kết thúc nó sẽ sinh ra trong thư mục /home/abc/.ssh/ 2 file:

  • id_rsa.pub đây là Public key, nội dung của nó lưu trên thư mục này để xác thực. Nội dung cần lưu sang file có tên authorized_keys, nên bạn cần copy nó ra tên mới bằng lệnh sau:
    # cp /home/abc/.ssh/id_rsa.pub /home/abc/.ssh/authorized_keys
    
  • id_rsaPrivate Key hay tải file này về và client nào muốn kết nối sẽ dùng key này để xác thực. (Xem thêm Dùng Putty kết nối)

Cấu hình SSH ở máy trạm

Mặc định các máy Linux thì có sẵn SSH, với Windows có thể cài Open SSH để kết nối SSH đến Server

Thông tin kết nối SSH ở client cũng lưu ở thư mục .ssh của user : ví dụ Windows - C:\Users\username\.ssh, Linux : /home/username/.ssh, nếu chưa có hãy tạo ra đúng vị trí ở như trên.

Bên trong thư mục đó tạo ra một file có tên config, ví dụ trên windows C:\Users\username\.ssh\config, và cấu hình SSH Client sẽ chứa trong file này. Cấu trúc cấu hình có thể tham khảo như sau.

Ví dụ Private Key sinh ra ở trên, tải về lưu tại C:\Users\username\.ssh\id_rsa

Host mydomain.net
  User abc
  Hostname mydomain.net
  PreferredAuthentications publickey
  IdentityFile "C:\Users\username\.ssh\id_rsa"
  Port 22

Lúc này khi kết nối SSH bạn gõ:

ssh abc@mydomain.net

Nó sẽ sử dụng Private Key trên để xác thực và kết nối.