ssh 命令介绍和使用案例
ssh
(Secure Shell) 是一种加密网络协议,用于在客户端和服务器之间安全地传输数据,实现远程登录和执行命令. ssh
加密所有会话中的通信,确保数据传输的安全性.
基本语法:
ssh [options] [user@]hostname [command]
[user@]hostname
: 要连接的远程主机的用户名和主机名 (可以是 IP 地址或域名).[command]
: 可选参数,用于在远程主机上执行的命令.
常用选项:
-l user
: 指定登录用户.-p port
: 指定连接到远程主机的端口号,默认端口是 22.-i identity_file
: 指定身份验证文件 (私钥文件) 用于公钥验证-v
: 详细模式,显示调试信息.-C
: 启用压缩.-N
: 不执行远程命令,只进行端口转发.-f
: 后台运行.-L local_port:remote_host:remote_port
: 本地端口转发.-R remote_port:local_host:local_port
: 远程端口转发.-D [bind_address:]port
: 动态应用程序级端口转发.-X
: 启用 X11 转发-A
: 启用代理转发.
使用案例:
连接到远程主机:
ssh user@hostname
例如:
ssh test@runoob.com
指定端口连接:
ssh -p 2222 user@hostname
例如:
ssh -p 2222 test@runoob.com
使用身份验证文件:
ssh -i /path/to/private_key user@hostname
例如:
ssh -i ~/.ssh/id_rsa test@runoob.com
在远程主机上执行命令:
ssh user@hostname command
例如:
ssh test@runoob.com ls -la
指定登录用户:
ssh -l user 192.168.1.100
或者
ssh user@192.168.1.100
使用 SSH 密钥对登录:
生成密钥对:ssh-keygen -t rsa
将公钥上传到远程主机的 ~/.ssh/authorized_keys
文件中:
ssh-copy-id user@192.168.1.100
登录远程主机:
ssh user@192.168.1.100
本地端口转发:
ssh -L local_port:remote_host:remote_port user@hostname
例如:
ssh -L 8080:localhost:80 test@runoob.com
远程端口转发:
ssh -R remote_port:local_host:local_port user@hostname
例如:
ssh -R 8080:localhost:80 test@runoob.com
动态端口转发:
ssh -D [bind_address:]port user@hostname
例如:
ssh -D 1080 test@runoob.com
SSH 客户端配置文件:
SSH 客户端配置文件位于 ~/.ssh/config
,可以在其中设置常用配置. 例如:
使用时只需:
ssh example
SSH 代理转发:
启用代理转发:
ssh -A user@hostname
X11 转发:
启用 X11 转发:
ssh -X user@hostname
安全建议:
- 修改 SSH 默认端口,防止被端口扫描.
- 禁用 root 用户直接登录.
- 使用 SSH 密钥对登录,提高安全性.