1.1 SSH客户端访问
1.1.1 Linux平台
在Linux平台访问SSH服务器主要通过以下几个命令完成。 1. ssh命令是Linux平台连接到SSH服务器最常用的命令。 (1)ssh命令参数。 ssh [-CfLRv] [用户名@] SSH服务器 [命令] 参数:
SSH服务器:指定需要连接的SSH服务器,可以使用FQDN或IP地址。
用户名@:指定连接SSH服务器的用户名,不指定用户名时默认以root用户连接。 命令:使用ssh命令可以连接到SSH服务器,但有时只需要在SSH服务器上执行一个命令时,可直接通过此参数指定需要执行的命令。 -C:启用压缩功能。
-f:在询问密码之后且在执行[命令]之前,将ssh转到后台运行。 -L:将本地系统中的某个端口转发到远程系统。 -R:将远程系统上的某个端口转发到本地客户端。
-v:显示与连接和传送有关的调试信息。如果命令运行不太正常的话,这个选项就会非
常有用。
(2)ssh命令使用实例。
在下面的例子中将使用root作为用户名连接到IP地址为192.168.0.10的
SSH服务器,如图 1所示。
ssh 192.168.0.10
图 1 ssh
其中各行含义如下。
①:通过ssh命令连接远程计算机,未输入用户名则默认使用root用户。
②:如果是第一次连接到远程计算机,由于本地主机的用户需要生成连接远程主机的RSA公钥,所以出现警告提示此处输入yes,OpenSSH会将这台计算机识别标记加入~/.ssh/know_hosts文件中,第二次连接时就不会出现警告。
③:输入远程计算机root用户密码。
④:已成功连接到远程计算机,此时输入的所有命令将在远程计算机中执行,可通过exit命令退出。
在下面的例子中将使用root作为用户名连接到IP地址为192.168.0.10的
SSH服务器只执行ifconfig命令(如图 2所示)。在本例中并没有向上一个
1 / 9 http://onlyzq.cublog.cn
张勤
例子直接连接到远程计算机,而是只是在远程计算机上执行了ifconfig命令后将结果在本地主机显示。
图 2 ssh
2. scp命令可以使用SSH的方式在远程主机和本地主机之间复制文件或目录。 (1)scp命令参数。 scp [-Cpqrv] [[用户名@]复制源主机:]复制源文件[[用户名@]复制目标主机:][复制目标文件] 说明:“复制源主机”和“复制目标主机”为两个系统名称,分别表示文件复制操作的源和目的地,可以使用FQDN或IP地址。当未指定时,默认为本地主机。用户名都默认为本地主机上正在输入该命令的用户,可以用“用户名@”来指定不同的用户。如果没有指定复制目标文件,那么scp将把文件复制到指定目标主机用户的家目录。 参数:
-C:启用压缩功能。
-p:保留原文件的修改时间、访问时间以及模式。 -q:不要显示复制进度信息。 -r:递归复制。
-v:显示与连接和传送有关的调试信息。如果命令运行不太正常的话,这个选项就会非
常有用。
(2)scp命令使用实例。
在下面的例子中将使用root作为用户名将IP地址为192.168.0.10的SSH服
务器上/etc/目录的所有内容复制到本地主机/test目录,如图 3所示。
scp -pr 192.168.0.1:/etc /test
2 / 9 http://onlyzq.cublog.cn
张勤
图 3 scp
在下面的例子中将使用root作为用户名将本地主机/etc目录所有内容复制
到IP地址为192.168.0.10的SSH服务器上/test目录,如图 4所示。
scp -pr /etc 192.168.0.10:/test
图 4 scp
3. sftp命令可以代替Linux平台的ftp命令,提供一种安全的连接FTP服务器的方式。
该命令使用方法与ftp命令相同,下面的例子中使用sftp连接到IP地址为192.168.0.10的FTP服务器,如图 5所示。 sftp 192.168.0.10
3 / 9 http://onlyzq.cublog.cn
张勤
图 5 sftp
4. 通过密钥方式远程登录。
在使用ssh连接到远程主机时每次需要输入远程主机的密码,如有多台服务器需要通过ssh进行管理时这样可能比较麻烦。这时可以通过使用密钥文件的方式,先在本机生成一对密钥文件,再将公钥文件复制到远程主机,这样当私钥文件所在主机连接远程主机时就不需要输入密码。使用密钥文件的配置方法如下(本章中配置方法是使用本地主机连接IP地址为192.168.0.10的远程主机)。
(1)使用如下命令生成密钥对文件,如图 6所示。
ssh-keygen
图 6 ssh-keygen
其中各行含义如下。
①:输入私钥文件的名称,直接回车使用默认名称(如果有多台需要连接的SSH服务器时,需要定义不同的文件名)。
②:输入私钥文件密码。
③:完成后在用户家目录.ssh中会自动生成密钥对文件,id_rsa为私钥文件,id_rsa.pub为公钥文件。
(2)使用如下命令将公钥复制到远程主机,如图 7所示。 ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.10
图 7 ssh-copy-id
其中各行含义如下。
①:输入远程计算机root用户密码。
②:公钥文件被复制到远程计算机后,会自动更名为authorized_keys,并复制到ssh-copy-id命令指定用户家目录中,在本章指定的是root用户。
4 / 9 http://onlyzq.cublog.cn
张勤
在上述配置完成后,使用ssh命令连接到远程主机时(如图 8所示),提示输入的密码就不是用户的密码,而是在生成密钥对时设置的密码(如图 6所示内容中②设置的密码)。
图 8 ssh
可以通过以下命令启用ssh代理功能,在启用代理后连接到远程主机时不需要输入任何密码。在输入第二个命令时会要求输入生成密钥对时设置的密码,如图 9所示。 ssh-agent bash ssh-add
图 9 ssh-agent、ssh-add
1.1.2 Windows平台
一般在Windows平台都是使用PuTTY(PuTTY官方网站:
http://www.chiark.greenend.org.uk/~sgtatham/putty/)连接到SSH服务器。PuTTY是一个开源软件,主要由Simon Tatham维护,使用MIT licence。PuTTY可以作为Telnet、SSH等的客户端连接软件,较早的版本仅支持Windows平台,在最近的版本中开始支持各类Unix平台,并打算移植至Mac OS X上。除了官方版本外,有许多非官方的团体或个人将PuTTY移植到其他平台上,比如使用Symbian的智能手机。PuTTY的Windows版本是一个绿色软件,下载(下载地址:http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe)后不需要安装即可使用。
打开PuTTY后输入需要连接的远程主机的IP地址或FQDN后,单击“Open”(如图 10所示)。如果是经常访问的服务器可以在“Saved Sessions”为当前服务器起个名称文件以后使用。
5 / 9 http://onlyzq.cublog.cn
张勤
图 10 PuTTY连接服务器
由于本地主机的用户需要生成连接远程主机的RSA公钥,所以在第一次连接远程主机时会出现警告提示此处选择“是”(如图 11所示)。在输入用户名及密码后即可使用SSH登录到远程主机,如图 12所示。
图 11 PuTTY警告提示
图 12 PuTTY连接成功
除了可以使用输入用户名和密码的方式连接到远程主机,PuTTY也可使用密钥对的方式登录SSH服务器。该方式配置方法如下。
(1)下载(下载地址:http://the.earth.li/~sgtatham/putty/0.60/x86/puttygen.exe)密钥
对生成工具PuTTYgen。
(2)运行PuTTYgen,单击“Generate”生成密钥对,在生成密钥对的过程中可以
在图 13所示内容①所在区域在移动数据,以使PuTTYgen可以获得更多的随机数据。
6 / 9 http://onlyzq.cublog.cn
张勤
图 13 PuTTYgen生成密钥对
(3)在图 14所示内容①是生成的公钥,可根据需要修改公钥的注释(在②处)。
设置私钥密码(在③、④处)后,单击“Save private key”保存私钥(该私钥文件应保存在一个安全的地点,比如U盘)。
图 14 保存密钥
(4)将图 14所示内容①处的公钥内容复制到远程主机对应用户家目录
下.ssh/authorized_keys文件中,比如使用root用户连接到远程主机,就将公钥内容复制到远程主机/root/.ssh/authorized_keys文件中(可使用PuTTY连接到远程主机后,使用vim打开authorized_keys文件后复制内容)。
(5)打开PuTTY,输入远程主机的IP地址或FQDN(如图 10所示)后,在
“Connection”→“Data”中输入连接远程主机的用户名(这里输入用户名是为了让PuTTY知道在哪个用户的家目录中读取公钥,这里需要输入上一步中保存公钥的用户名,如图 15所示), 在“Connection”→“SSH” →“Auth”中选择私钥文件并勾选“Allow agent forwarding”,如图 16所示内容。
7 / 9 http://onlyzq.cublog.cn
张勤
图 16 选择私钥文件 图 15 输入用户
(6)单击“Open”连接选择主机后应输入私钥文件的密码,而不是远程主机用户
的密码,如图 17所示内容。
图 17 输入私钥密码
图 18 保存会话
通过Pageant(下载地址:http://the.earth.li/~sgtatham/putty/0.60/x86/pageant.exe)可以在通过PuTTY访问远程主机时不输入私钥密码直接登录,该工具配置方法如下。
(1)打开PuTTY后输入远程主机IP地址或主机名、在“Connection”→“Data”
中输入连接远程主机的用户名、在“Connection”→“SSH”→“Auth”中选择
私钥文件并勾选“Allow agent forwarding”后,为该主机起一个会话名称后,单击“Save”,如图 18所示。
(2)双击打开“pageant.exe”后,在“系统托盘”处会显示pageant.exe图标,单击
选择“Add Key”(如图 19所示),选择私钥文件后输入私钥密码,如图 20所示内容。
8 / 9 http://onlyzq.cublog.cn
张勤
图 20 输入私钥密码
图 19 导入私钥
(3)单击pageant.exe图标选择“Saved Sessions”中对应会话名称(如图 21所示内
容)后即可在不输入任何密码的情况下连接到远程主机。
图 21 选择会话
9 / 9 http://onlyzq.cublog.cn
因篇幅问题不能全部显示,请点此查看更多更全内容