在我们学习过OpenSSH 后,我们知道OpenSSH的主要角色是用作Unix SSH 工具,它是 Telnet 协议的安全替代方法,用于安全地远程登录到 Unix 或 Linux 主机。要使用标准 Shell 连接到远程主机,您只需键入主机名: $ ssh remotehost
在缺省情况下,系统尝试使用当前用户名作为登录名称。要使用不同的登录名称,请在主机名前加上该登录名称,并使用 @ 符号分开。例如:$ ssh mc@remotehost
系统提示您输入用户密码——这与 Telnet 相似。
您第一次连接到主机时,系统会询问您是否需要将远程主机公钥的副本保存在“已知主机”文件中(请参见清单 5)。
清单 5. 已知主机文件
- $ ssh root@remotehost
- The authenticity of host 'remotehost (10.211.55.3)' can't be established.
- RSA key fingerprint is cc:c8:8b:75:3d:b6:00:2f:a9:9c:53:4c:03:0f:3d:1b.
- Are you sure you want to continue connecting (yes/no)? yes
- Warning: Permanently added 'remotehost' (RSA) to the list of known hosts.
以后,您不会收到此警告,但是,当系统检测到远程主机返回的公钥与该主机文件中的公钥不符时就会发出警告,指示可能存在黑客攻击。这还可能意味着管理员仅重新生成了主机密钥。
从本质上讲,Unix SSH 和 Telnet 会话之间没有什么不同,只不过Unix SSH 会话进行了加密,任何人几乎不可能探听到您的会话内容,也不可能知道您的密码或您正在执行的命令和操作。
您还可以使用Unix SSH 直接在远程主机上运行命令,而无需使用 Shell。例如,要在远程主机上运行 who 命令,请参见清单 6。
清单 6. 在远程主机上运行 who 命令
- $ ssh mc@remotehost who
- adminconsole Nov 23 14:04
- mc ttyp1Dec 2 10:53 (sulaco.mcslp.pri)
- mc ttyp2Dec 10 06:50 (sulaco.mcslp.pri)
- adminttyp3Dec 12 13:33
- mc ttyp4Dec 15 12:38 (nautilus.mcslp.p)
远程执行还模拟客户端主机的标准输入、输出和错误。这意味着您可以将输出重新定向到远程命令。例如,您可以直接将信息附加到远程文件,方法是通过管道将输出从命令传输到远程主机上的Unix SSH(请参见清单 7)。
清单 7. 直接将信息附加到远程文件
- $ echo "Hello World" |ssh mc@remotehost 'cat >> helloworlds.txt'
在使用Unix SSH 简化登录过程时,您可以使用此方法提高工作效率。
【编辑推荐】