科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道Linux下的SSH使用指南

Linux下的SSH使用指南

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。

作者:巧巧读书 来源:巧巧读书 2008年6月11日

关键字: Linux ssh

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)

  SSH提供了一些命令和shell用来登录远程服务器。在默认情况下它不允许你拷贝文件,但是还是提供了一个“scp”命令。

  假定你想把本地计算机当前目录下的一个名为“dumb”的文件拷贝到远程服务器www.foobar.com上你的家目录下。而且你在远程服务器上的帐号名为“bilbo”。可以用这个命令:

  scp dumb www.foobar.com">bilbo@www.foobar.com:.

  把文件拷贝回来用这个命令:

  scp www.foobar.com:dumb">bilbo@www.foobar.com:dumb .

  “scp”调用SSH进行登录,然后拷贝文件,最后调用SSH关闭这个连接。

  如果在你的“~/.ssh/config”文件中已经为www.foobar.com做了这样的配置:

  Host *fbc

  HostName www.foobar.com

  User bilbo

  ForwardAgent yes

  那么你就可以用“fbc”来代替www.foobar.com">“bilbo@www.foobar.com”,命令就简化为“scp dumb fbc:.”。

  “scp”假定你在远程主机上的家目录为你的工作目录。如果你使用相对目录就要相对于家目录。

  用“scp”命令的“-r”参数允许递归地拷贝目录。“scp”也可以在两个不同的远程主机之间拷贝文件。

  有时候你可能会试图作这样的事:用SSH登录到www.foobar.com上之后,输入命令“scp [local machine]:dumb .”想用它把本地的“dumb”文件拷贝到你当前登录的远程服务器上。这时候你会看到下面的出错信息:

  ssh: secure connection to [local machine] refused

  之所以会出现这样的出错信息是因为你运行的是远程的“scp”命令,它试图登录到在你本地计算机上运行的SSH服务程序……所以最好在本地运行“scp”除非你的本地计算机也运行SSH服务程序。

  用“sftp”拷贝文件

  如果你习惯使用ftp的方式拷贝文件,可以试着用“sftp”。“sftp”建立用SSH加密的安全的FTP连接通道,允许使用标准的ftp命令。还有一个好处就是“sftp”允许你通过“exec”命令运行远程的程序。从2.0.7版以后,图形化的ftp客户软件“gftp”就支持“sftp”。

  如果远程的服务器没有安装sftp服务器软件“sftpserv”,可以把“sftpserv”的可执行文件拷贝到你的远程的家目录中(或者在远程计算机的?$PATH环境变量中设置的路径)。“sftp”会自动激活这个服务软件,你没有必要在远程服务器上有什么特殊的权限。

  用“rsync”拷贝文件

  “rsync”是用来拷贝、更新和移动远程和本地文件的一个有用的工具,很容易就可以用“-e ssh”参数和SSH结合起来使用。“rsync”的一个优点就是,不会拷贝全部的文件,只会拷贝本地目录和远程目录中有区别的文件。而且它还使用很高效的压缩算法,这样拷贝的速度就很快。

  用“加密通道”的ftp拷贝文件

  如果你坚持要用传统的FTP客户软件。SSH可以为几乎所有的协议提供“安全通道”。FTP是一个有一点奇怪的协议(例如需要两个端口)而且不同的服务程序和服务程序之间、客户程序和客户程序之间还有一些差别。

  实现“加密通道”的方法是使用“端口转发”。你可以把一个没有用到的本地端口(通常大于1000)设置成转发到一个远程服务器上,然后只要连接本地计算机上的这个端口就行了。有一点复杂是吗?

  其实一个基本的想法就是,转发一个端口,让SSH在后台运行,用下面的命令:

  ssh [user@remote host] -f -L 1234:[remote host]:21 tail -f /etc/motd

  接着运行FTP客户,把它设置到指定的端口:

  lftp -u [username] -p 1234 localhost

  当然,用这种方法很麻烦而且很容易出错。所以最好使用前三种方法。

  用SSH设置“加密通道”

  “加密通道”的基础知识SSH的“加密通道”是通过“端口转发”来实现的。你可以在本地端口(没有用到的)和在远程服务器上运行的某个服务的端口之间建立“加密通道”。然后只要连接到本地端口。所有对本地端口的请求都被SSH加密并且转发到远程服务器的端口。当然只有远程服务器上运行SSH服务器软件的时候“加密通道”才能工作。可以用下面命令检查一些远程服务器是否运行SSH服务:

  telnet[full name of remote host] 22

  如果收到这样的出错信息:

  telnet: Unable to connect to remote host: Connection refused

  就说明远程服务器上没有运行SSH服务软件。

  端口转发使用这样的命令语法:

  ssh -f [username@remote host] -L [local port]:[full name of remote host]:[remote port] [some command]

  你不仅可以转发多个端口而且可以在“~/.ssh/config”文件中用“LocalForward”设置经常使用的一些转发端口。

  为POP加上“加密通道”

  你可以用POP协议从服务器上取email。为POP加上“加密通道”可以防止POP的密码被网络监听器(sniffer)监听到。还有一个好处就是SSH的压缩方式可以让邮件传输得更快。

  假定你在pop.foobar.com上有一个POP帐号,你的用户名是“bilbo”你的POP口令是“topsecret”。用来建立SSH“加密通道”的命令是:

  ssh -f -C bilbo@pop.foobar.com -L 1234op.foobar.com:110 sleep 5

  (如果要测试,可以把“sleep”的值加到500)。运行这个命令之后会提示你输入POP口令:

  bilbo@pop.foobar.com's password:

  输入口令之后就可以用“telnet”连接到本地的转发端口了。

  telnet localhost 1234

  你会收到远程mail服务器的“READY”消息。

  当然,这个方法要求你手工输入所有的POP命令,这是很不方便的。可以用Fetchmail(参考how to configure Fetchmail)。Secure POP via SSH mini-HOWTO、man fetchmail和在“/usr/doc/fetchmail-[…]”目录下的Fetchmail的FAQ都提供了一些具体的例子。

  请注意IMAP协议使用的是不同的端口:IMAP v2的端口号为143而IMAP v3的端口号为220。

  为X加上“加密通道”

  如果你打算在本地计算机上运行远程SSH服务器上的X程序,那么登录到远程的计算机上,创建一个名为“~/.ssh/environment”的文件并加上这一行:

  XAUTHORITY=/home/[remote user name]/.Xauthority

  (如果在远程主机上你的家目录下不存在“.Xauthority”这个文件,那么当用SSH登录的时候就会自动创建)。

  比如启动一个X程序(xterm)可以这个命令:

  ssh -f -X -l [remote user name] [remote machine] xterm

  这将在远程运行xterm这个程序。其它的X程序也是用相同的方法。

  为linuxconf加上“加密通道”

  Linuxconf是Linux的配置工具,它支持远程管理。Linuxconf的FAQ重说明了如何通过SSH使用linuxconf:

  其命令为:

  remadmin ——exec [link_command] linuxconf ——guiproto

  如果你想在两台计算机之间用加密的方式传送信息,那么最好用ssh。命令是:

  remadmin ——exec ssh -l [account] linuxconf ——guiproto

  这是非常有效的而且运行用图形界面管理计算机。

  这种方法需要在客户端安装linuxconf。其它的方法还有直接登录到服务器上用“X11Forwarding”或字符界面运行linuxconf。

  为Webmin加上“加密通道”

  Webmin是一个新的基于浏览器的配置工具。它运行在1000端口。你可以用SSH的“端口转发”对它进行加密:

  ssh -f -l [remote user name] [remote host] -L 1234:[remote host]:10000 tail -f /etc/motd

  把浏览器指向

  http://localhost:1234

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章