ssh:安全登录远程主机或运行远程命令(ssh:Secure Shell)
telnet:登录远程主机(不安全)
scp:在远程主机和本地间安全传输文件(scp:Secure Copy)
sftp:在远程主机和本地间安全传输文件(交互式)(sftp:Secure File TransferProtocol)
ftp:在远程主机和本地间传输文件(交互式,不安全)(ftp:File TransferProtocol)
在linux系统中,很容易在机器之间建立网络连接,进行远程登录及文件传输。不过需要你确认这样做的安全性。
ssh命令
ssh [options] host [command]
如果你有远程主机的账号,ssh(Secure Shell)程序就可以让你安全登录它。ssh将所有通过它进行网络传输的数据进行加密,包括用户名及密码(你访问远程主机需要密码)。ssh协议也支持其他认证方式,例如公钥与主机IDs。
ssh命令的常用选项:
-l user
指定远程登录用户名;否则,ssh将使用你当前的本地账号登录。也可以使用语法 username@host;
-p port
指定port端口号,而不是使用默认的22端口
-t
在远程主机上分配tty;在远程主机上运行交互式程序(如运行文本编辑器)时特别有用。
-v
输出详细的交互信息。对调试很有用。
telnet命令
telnet [options] host [port]
telnet让你能够登录远程主机(如果你有远程主机的账号):
$ telnet remote.example.com
应该避免使用telnet进行远程登录:许多操作都是不安全的,而且它在网络中以明文方式传输登录密码,容易被盗取。请使用ssh代替telnet,它通过加密保护密码和数据,比较安全。以下是两种例外情况:
Kerberos环境下,在客户端及服务器端均使用增强的(“kerberized”)telnet软件。
连接到远程端口后,没有传输任何秘密的信息。例如,检查远程主机上的web服务器(80端口)是否存在:
$ telnet remote.example.com 80
Trying 192.168.55.21...
Connected to remote.example.com (192.168.55.21).
Escape character is '^]'.
xxx //随意输入并按回车键
400 Bad RequestBad Request
Your browser sent arequest that
this server could not understand.
Connection closed by foreign host.
由于不鼓励继续使用telnet,所以本书就不解释它的选项了。
scp命令
scp local_spec remote_spec
scp(secure copy)命令用于在计算机间批量复制文件和目录。(如果需要交互,可改用sftp)。两端之间的所有通信数据都被加密。以下是一个简单的例子,scp可将文件从一个机器复制到另一个机器中:
$ scp myfile remote.example.com:newfile
将目录递归复制至远程主机:
$ scp -r myfile remote.example.com:
将远程文件复制至本地主机:
$ scp remote.example.com:myfile .
将远程目录递归复制至本地主机:
$ scp -r remote.example.com:mydir .
如果在远程主机上有不同的用户名,使用username@host语法指定远程用户名(注:冒号之后不用新文件名,就是用原文件名??):
$ scp myfile smith@remote.example.com:
scp命令的常用选项:
-p
复制所有文件属性(权限,时间戳)
-r
递归复制整个目录及其内容
-v
产生详细的输出信息,对调试很有用
sftp命令
sftp (host username@host)
sftp程序交互式地在两台机器间安全传输文件。(和scp相反,它是批量复制)。它的用户界面和ftp非常相像,但是ftp不安全。
$ sftp remote.example.com
Password: ********
sftp> cd MyFiles
sftp> ls
README
file1
file2
file3
sftp> get file2
Fetching /home/smith/MyFiles/file2 to file2
sftp> quit
如果你在远程主机上的用户名不同于本地的,请使用username@host参数:
$ sftp smith@remote.example.com
sftp中的命令有:
命令
意义
help
查看可用的命令列表
ls
列出当前远程目录下的所有文件
lls
列出当前本地目录下的所有文件
pwd
打印当前的远程工作目录
lpwd
打印当前的本地工作目录
cd dir
切换远程工作目录
lcd dir
切换本地工作目录
get file1 [file2]
将远程文件file1复制到本地(可更名为file2)
put file1 [file2]
将本地文件file1复制到远程主机(可更名为file2)
mget file*
使用通配符*和?将多个远程文件复制到本地
mput file*
使用通配符*和?将多个本地文件复制到远程主机
quit
退出sftp
ftp命令
ftp [options] host
ftp(File Transfer Protocol)程序用于在计算机间传输文件,但是因为你的用户名和密码都是以明文方式在网络中传输,所以不那么安全。如果远程服务器支持的话,建议使用sftp替代ftp。
在sftp中列出的命令在ftp中一样使用(但是,两个程序也支持其他不同的命令)。