1 2 3 4 5 6 7 8 9 10 11 12 13
| -f 要求 在执行命令前退至后台. 它用于当 准备询问口令或密语, 但是用户希望它在后台进行. 该选项隐含了 -n 选项. 在远端机器上启动 X11 程序的推荐手法就是类似于 ssh -f host xterm 的命令.
-g 允许远端主机连接本地转发的端口.
-n 把 stdin 重定向到 /dev/null (实际上防止从 stdin 读取数据). 在后台运行时一定会用到这个选项. 它的常用技巧是远程运行 X11 程序. 例如, ssh -n shadows.cs.hut.fi emacs 将会在 shadows.cs.hut.fi 上启动 emacs, 同时自动在加密通道中转发 X11 连接. 在后台运行. (但是如果 要求口令或密语, 这种方式就无法工作; 参见 -f 选项.)
-N 不执行远程命令. 用于转发端口. (仅限协议第二版)
-L port:host:hostport 将本地机(客户机)的某个端口转发到远端指定机器的指定端口. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 同时远程主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有 root 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport
-R port:host:hostport 将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口. 工作原理是这样的, 远程主机上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转向出去, 同时本地主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有用 root 登录远程主机 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport
|
1. ssh 隧道
1 2 3 4 5 6 7
| ssh -g -f -N -L forwardingPort:targetIP:targetPort user@sshServerIP
ssh -f -N -R forwardingPort:targetIP:targetPort user@sshServerIP
ssh -f -v -N -S none -o ControlMaster=no -o ExitOnForwardFailure=yes -o ConnectTimeout=10 -o NumberOfPasswordPrompts=3 -o TCPKeepAlive=no -o ServerAliveInterval=60 -o ServerAliveCountMax=1 root@114.55.127.5 -L 52689:rm-bp18dj01b38saby47.mysql.rds.aliyuncs.com:3306
|
2. 生成 ssh key
lang=shell1
| ssh-keygen -t rsa -N "" -f $HOME/.ssh/id_rsa
|
3. 常见问题
3.1. 1. 登录远程主机后中文乱码
提示 bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
原因:
1. 远程主机没有本机的字符集 en_US.UTF-8
2. 本机字符集不支持中文
解决方案:
1 2 3 4 5
| sudo dpkg-reconfigure locales
export LC_ALL=zh_CN.UTF-8
|
4. Resources