tổng hợp lệnh ssh

Tổng hợp những câu lệnh và các cấu hình thường dùng trong ssh để bạn dễ tra cứu.

Các câu lệnh cơ bản

SSH connections keep alive:

sudo vi /etc/ssh/ssh_config
ServerAliveInterval 60

Kết nối đến một server từ xa:

ssh [user]@example.com

Kết nối với kết nối server từ xa trên một port khác port 22:

ssh -p 62775 [user]@example.com

Chạy một file script trên server:

ssh user@server '/path/to/script.sh'

Chạy một file script local trên server:

ssh user@server bash < [script]

Chạy một lệnh trên server:

ssh user@server "sudo /opt/scripts/doSomething.sh magic"

Tunnel & Proxy

Sử dụng port server để ssh vào một server khác:

ssh -J [gateway] [destination]

Sử dụng kết nối ssh như một kết nối sock proxy:

ssh -D [local_port] [user]@[host]

Sử dụng kết nối ssh như một kết nối sock proxy với no shell:

ssh -N -D [local_port] [user]@[host]

Chuyển tiếp local port đến port từ xa trên server từ xa thông qua port:

ssh -L [local_port]:[destination_host]:[detination_port] [gateway_user]@[gateway_host]

Chuyển tiếp local port đến port từ xa trên server từ xa thông qua port với no shell:

ssh -N -L [local_port]:[destination_host]:[detination_port] [gateway_user]@[gateway_host]

Map local port trực tiếp lên một port ở điểm đích:

ssh -L [local_port]:localhost:[destination_port] [destination_user]@[destination_host]

Ví dụ: Map local port 8888 thành port 80 trên example.com thông qua proxy

ssh -L 8888:example.com:80 [user]@[host]
firefox localhost:8888

Ví dụ: map port 8888 đến ssh into [target] thông qua [gateway]

ssh -L 8888:[target_host]:22 [gateway_user]@[gateway_host]
ssh -p 8888 [target_user]@localhost

Mở một local port đến một remote server thông qua ssh:

ssh -R [remote_port]:[local_address]:[local_port] [gateway_user]@[gateway_host]

SSH keys

Tạo private key và public key local để ssh vào server cho trình xác thực dựa trên key theo cách thủ công là dán public key từ local vào tệp cấu hình của server đích:

Tạo key mới từ local:

ssh-keygen

Sao chép key ssh từ local vào server để xác thực dựa trên key:

ssh-copy-id [user]@[host]

Thêm public key vào file xác thực trên server:

vi ~/.ssh/authorized_keys

Bảo mật scp (scp)

sao chép tệp vào remote:

scp /tmp/file.zip yourdomain.com:/path/to/file.zip

Giữ thời gian chỉnh sửa file cuối cùng

scp -p [from] [to]

Sử dụng đệ quy để copy toàn bộ file trong thư mục từ server về local:

scp -r [user]@example.com:/data/upload /data/

Copy với port ssh tùy chỉnh:

scp -P 62775 [from] [to]

Tải xuống tệp từ tunnel server [target] thông qua server [gateway]

ssh -L [port]:[target]:22 [gateway_user]:[gateway]
scp -P [port] [target_user]@[gateway]:[file] .

Mount thống tệp từ xa

Mount một thư mục từ xa vào hệ thống tệp local:

sshfs [user]@[host]:[remote_path] [mountpoint]

unmount thư mục từ xa

umount [mountpoint]

sshuttle – poor mans VPN over SSH

Định tuyến tất cả lưu lượng truy cập qua một kết nối ssh

sshuttle -r [user]@[host] 0/0

Config file

Để việc sử dụng ssh dễ dàng, ngắn gọn và dễ quản lý, chúng ta có thể dùng ssh config file:

~/.ssh/config
Host [alias]
	HostName example.com
	User [user]
	IdentityFile ~/.ssh/[key]
	Port 22
	ForwardX11 no
	ForwardAgent no
	ProxyJump 10.10.10.10

Sau đó chỉ cần dùng câu lệnh ngắn gọn sau để ssh vào server:

ssh [alias]

Xem tất cả các config và alias chúng ta sử dụng storm ssh:

storm list

Chạy lệnh ssh trên nhiều server cùng một lúc

parallel-ssh

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments