FTP 与 SSH 的安全性对比?
ftP:
http://baike.baidu.com/subview/369/6149695.htm
需要进行远程文件传输的计算机必须安装和运行ftp客户程序。
ssh:
http://baike.baidu.com/subview/16184/5909252.htm
SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
VS:
传 统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常 容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式, 就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之 后,就会出现很严重的问题。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和 IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为 FTP、PoP、甚至为PPP提供一个安全的"通道"。
Tip:写到这,突然想起以前有个老师讲过,他使用filezilla 的FTP软件来实现向服务器端上传文件的;但是考虑到ftp安全性问题,他采用一些策略:
就是 每次上传完文件后,就立即把安装的ftp软件卸载!下次上传时,再重新安装一次!虽然有一点不便,但确实把安全提高了一些!
(如果你习惯了使用ftp传输文件,不妨采用一下这个策略! )
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
other:
Telnet: 著名的终端访问协议,传统的网络服务程序,如FTP、POP和Telnet,其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令。
FTP: File Transfer Protocol 是用于在网络上进行文件传输的一套标准协议。
SFTP: SSH File Transfer Protocol ,有时也被称作 Secure File Transfer Protocol 或 SFTP。它和SCP的区别是它允许用户中断传输,SCP拷贝速度稍快一些。
SSH: Secure Shell ,是建立在传输层基础上的安全协议,它本身属于应用层,同时可以为应用层提供安全传输服务。
SCP:(Secure Copy)——Linux文件传送命令
sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。
传 统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些 口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式, 就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之 后,就会出现很严重的问题。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和 IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为 FTP、PoP、甚至为PPP提供一个安全的"通道"。
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
【Telnet】著名的终端访问协议,传统的网络服务程序,如FTP、POP和Telnet,其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令。
【telnet命令】telnet host [port]
【SSH】Secure Shell 的缩写,是建立在传输层基础上的安全协议,它本身属于应用层,同时可以为应用层提供安全传输服务。
SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。透过 SSH 可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。
SSH 之另一项优点为其传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、POP、甚至为PPP提供一个安全的“通道”。
【ssh命令】linux下,用ssh登录服务器,格式如下:
ssh -l 远程服务器用户名 远程服务器ip地址 -p 远程服务器ssh端口(默认22)
【SecureCRT使用SSH2协议登录示例】:在windows下,使用SecureCRT
6.2可方便Telnet到远端服务器,它支持SSH1、SSH2、Telnet/SSL等安全登录访问协议,在第一次使用SSH2协议向服务器建立连接
时,,SecureCRT首先会检查Server的公钥是否在本地数据库存放,如果没有,则不会把你的用户名、口令传输过去,它会将服务器端的公钥取回来
(可以直接从Server取,也可以从第三方获取),并提示:
The host key database does not contain an entry for the
hostname 172.16.200.244, which resolved to 172.16.200.244,
port 22. If you have received this message more
than once for 172.16.200.244, this may mean that 172.16.200.244
is an “alias” which resolves to different hosts.
It is recommended you verify your host key before accepting.
Server’s host key fingerprint (MD5 hash):
24:0f:36:5e:43:ad:f5:b8:1b:ae:ac:f7:9f:c2:c0:4c
当
你选择确认保存,则SecureCRT会把Server的公钥保存到本地公钥数据库,然后会重新让你输入用户名和密码,再次安全地登录服务器,因为这一次
会使用Server的公钥来加密用户名和口令。之后的登录和交互就会一直使用本地数据库保存的Server的公钥来加密传输。
【scp命令】
SCP(Secure Copy)——Linux文件传送命令
scp 命令是 SSH
中最方便有用的命令了,试想,在两台服务器之间直接传送文件,仅仅用 scp 一个命令就完全解决了。 你可以在一台服务器上以 root 身份运行
#scp servername:/home/ftp/pub/file1 . 这样就把另一台服务器上的文件 /home/ftp/pub/file1
直接传到本机器的当前目录下,当然你也可以用 #scp /tmp/file2 servername:/boot 把本机上的文件
/tmp/file2 送到另一台机器的 /boot 目录下。而且整个传送过程仍然是用 SSH 加密的。
scp 就是 secure copy, 是用来进行远程文件拷贝的 . 数据传输使用 ssh1, 并且和 ssh1 使用相同的认证方式 , 提供相同的安全保证。与 rcp 不同的是 ,scp 会要求你输入密码,如果需要的话。
最简单的应用如下 :
scp 本地用户名 @IP 地址 : 文件名 1 远程用户名 @IP 地址 : 文件名 2
[ 本地用户名 @IP 地址 :] 可以不输入 , 可能需要输入远程用户名所对应的密码 .
可能有用的几个参数 :
-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .
-C 使能压缩选项 .
-P 选择端口 . 注意 -p 已经被 rcp 使用 .
-4 强行使用 IPV4 地址 .
-6 强行使用 IPV6 地址 .
-r Recursively copy entire directories.
如——
copy 本地的档案到远程的机器上
scp /etc/lilo.conf my@www.upsdn.net:/home/my
会将本地的 /etc/lilo.conf 这个档案 copy 到 www.upsdn.net,使用者my 的家目录下。
=====================================================
例如:
copy 本地的档案到远程的机器上
scp /etc/lilo.conf k@net67.ee.oit.edu.tw:/home/k
会将本地的 /etc/lilo.conf 这个档案 copy 到 net67.ee.oit.edu.tw,使用者 k 的家目录下。
copy远程机器上的档案到本地来
scp k@net67.ee.oit.edu.tw:/etc/lilo.conf /etc
会将 net67.ee.oitdu.tw 中 /etc/lilo.conf 档案 copy 到本地的 /etc 目录下。
保持从来源 host 档案的属性
scp –p k@net67.ee.tw:/etc/lilo.conf /etc
在此必须注意使用者的权限是否可读取远程上的档案,若想知道更多关于 scp 的使用方法,可去看看 scp 的使用手册。
ssh-keygen
产生公开钥 (pulib key) 和私人钥
(private key),以保障 ssh 联机的安性, 当 ssh 连 shd 服务器,会交换公开钥上,系统会检查
/etc/ssh_know_hosts 内储存的 key,如果找到客户端就用这个 key 产生一个随机产生的session key
传给服务器,两端都用这个 key 来继续完成 ssh 剩下来的阶段。
它会产生
identity.pub、identity 两个档案,私人钥存放于identity,公开钥 存放于 identity.pub 中,接下来使用
scp 将 identity.pub copy 到远程机器的家目录下.ssh下的authorized_keys。
.ssh/authorized_keys(这个 authorized_keys 档案相当于协议的 rhosts 档案),
之后使用者能够不用密码去登入。RSA的认证绝对是比 rhosts 认证更来的安全可靠。
执行:
scp identity.pub k@linux1.ee.oit.edu.tw:.ssh/authorized_keys
若在使用 ssh-keygen 产生钥匙对时没有输入密码,则如上所示不需输入密码即可从 net67.ee.oit.edu.tw 去登入 linux1.ee.oit.edu.tw。在此,这里输入的密码可以跟帐号的密码不同,也可以不输入密码。
【FTP】文件传输协议(英文:File Transfer Protocol,简称为FTP)是用于在网络上进行文件传输的一套标准协议。它属于网络协议组的应用层。
【ftp命令】ftp host
【SFTP】
SSH File Transfer Protocol ,有时也被称作 Secure File Transfer Protocol 或 SFTP。
它和SCP的区别是它允许用户中断传输,SCP拷贝速度稍快一些。
具体解释可参见http://en.wikipedia.org/wiki/SSH_file_transfer_protocol
http://www.binghe.org/2010/03/telnet-ftp-ssh-sftp-scp/
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx