Linux ssh 命令
ssh 命令用于通过 SSH 协议连接到远程主机,实现远程登录和执行命令,它加密会话中的所有通信,确保数据传输的安全性。
SSH (Secure Shell) 是一种用于远程登录和其他网络服务之间的加密协议,SSH 提供了一个安全的通信渠道,以保护数据的机密性和完整性。
语法
ssh [options] [user@]hostname [command]
参数说明
[user@]hostname
:要连接的远程主机的用户名和主机名。[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
:动态应用程序级端口转发。
实例
基本用法
连接到远程主机:
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 -v user@hostname
示例:
ssh -v test@runoob.com
启用压缩:
ssh -C user@hostname
示例:
ssh -C test@runoob.com
后台运行且不执行命令:
ssh -f -N user@hostname
示例:
ssh -f -N test@runoob.com
端口转发
本地端口转发:
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/config,可以在其中设置常用配置。
示例:
Host example HostName example.com User john Port 2222 IdentityFile ~/.ssh/id_rsa
使用时只需:
ssh example
SSH 代理转发
启用代理转发:
ssh -A user@hostname
示例:
ssh -A test@runoob.com
X11 转发
启用 X11 转发:
ssh -X user@hostname
示例:
ssh -X test@runoob.com