SSH 的一般用途

您通常使用 SSH 来允许用户登录到一个远程主机并执行命令。然而,SSH 还支持隧道和 X11 连接。它甚至可以使用 SFTP 或 SCP 传输文件。SSH 适用于大部分常见平台内的多个应用程序,这些平台包括 Linux、UNIX、Windows 和 Apple® OS X,虽然有些应用程序可能需要仅在特定 SSH 客户端或服务器上提供或与之兼容的功能。 下面是一些常见的 SSH 语法例子: 远程主机 shell 访问(取代 telnet 和 rlogin 明文,不安全协议):

Terminal
1
2
# ssh fsmythe@example.com
[fsmythe@example.com] ~

在远程主机(代替 rsh)执行单一命令:

Terminal
1
2
# ssh root@example.com reboot 
root@example.com's password: ******

通过 SCP 命令将文件从本地服务器复制到远程主机。

Terminal
1
2
3
root@edb-01.example.com's password: ******
file1.txt      100%    0     0.0KB/s   00:00
file2.txt      100%    0     0.0KB/s   00:00

结合 SFTP,作为 FTP 文件传输的一个安全替代品:

Terminal
1
2
3
4
sftp fsmythe@example.com
Connecting to example.com...
fsmythe@example.com's password: *******
sftp>

结合 rsync 有效安全地备份、复制和镜像文件到一个本地或远程主机:

Terminal
1
2
3
4
5
6
7
8
9
10
11
12
13
# rsync -avul --rsh=ssh /opt/edbdata/ root@example.com:/root/backup/
root@example.com's password: ******
building file list ... done
./
file1.txt
file2.txt
file3.txt
file4.txt
dir1/file5.txt
dir2/file6.txt

sent 982813 bytes  received 2116 bytes  1374860.38 bytes/sec
total size is 982138  speedup is 1.00

端口转发或端口隧道化(不要与 VPN 混淆):

Terminal
1
ssh -L 8000:mailserver:110 example.com    fsmythe@example.com's password: ********

从一个远程主机转发 X 会话(可能通过多个中间主机):

Terminal
1
2
3
4
5
6
Edit /etc/ssh/sshd_config and change 2 keywords :
AllowTcpForwarding yes
X11Forwarding yes
# service sshd restart 
$ export DISPLAY
$ ssh -X fsmythe@example.com

X11 转发配置与带 SSH X11 隧道的一个 X Windows 客户端的结合,支持实现通过 SSH 安全地在同一 Windows 主机上运行的一个 UNIX 或 Linux GUI 子系统,该 Windows 主机是到 Linux 或 UNIX 远程主机的 SSH 会话的来源:

Terminal
1
2
3
4
ssh -ND 8000 fsmythe@example.com
Browser Settings, goto 'Manual Proxy Configuration' set "SOCKS Host" to example.com,
the 'Port to 8000' , Enable SOCKS v5, and lastly set 'No Proxy for' field
to 'localhost, 127.0.0.1'

使用 sshfs 将一个目录作为本地计算机上的文件系统安全地挂载到一个远程服务器:

Terminal
1
2
# yum install sshfs fuse-utils (Install sshfs and fuse-utils)
$sshfs example.com:/remote_dir /mnt/local_dir

通过一个或多个机制对服务器进行自动化的远程主机监控和管理:

Terminal
1
2
3
(Report number of apache processes running on the remote server example.com):
$ ssh example.com ps -ef | grep httpd | wc -l
root@example.com's password: *****

转载http://www.ibm.com/developerworks/cn/aix/library/au-sshsecurity/

原文地址:http://dlj.bz/hPoQi7

Comments