Linux 远程连接

本文最后更新于:2024年9月8日 晚上

Linux 远程连接

sftp

登陆

1
sftp user@ip

帮助

1
help

建立连接后, linux shell中的$编程了sftp>,这也对,现在执行以下help,可以看看sftp支持哪些命令。

查看当前目录的路径

1
2
pwd
lpwd

pwd是看远端服务器的目录,即sftp服务器默认的当前目录, lpwd是查看本地目录。

查看当前目录的文件

1
2
ls
lls

ls是看sftp服务器下当前目录下的东东, lls是查看本地当前目录下。

上传

1
put a.txt

把linux本地目录下的a.txt文件上传到sftp服务器的当前目录下。

下载

1
get b.txt

把sftp服务器当前目录下的b.txt文件下载到本地当前目录下。

本地执行

1
!command
  • 这个是指在本地上执行command这个命令,比如!ls是列举本地当前目录下的东东, !rm a.txt是删除本地当前目录下的a.txt文件。
  • 这个命令非常非常有用,因为在sftp> 后输入命令,默认值针对sftp服务器的,所以执行rm a.txt删除的是sftp服务器上的a.txt文件,而非本地的linux上的a.txt文件。

退出

1
2
exit
quit

scp

  • Linux scp 命令用于 Linux 之间复制文件和目录。
  • scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。
  • scp 是加密的,rcp是不加密的,scp 是 rcp 的加强版。
1
2
3
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 [...] [[user@]host2:]file2
  • 简易写法:
1
scp [可选参数] file_source file_target
  • -1:强制scp命令使用协议ssh1
  • -2:强制scp命令使用协议ssh2
  • -4:强制scp命令只使用IPv4寻址。
  • -6:强制scp命令只使用IPv6寻址。
  • -B:使用批处理模式(传输过程中不询问传输口令或短语)
  • -C:允许压缩,(将-C标志传递给ssh,从而打开压缩功能)
  • -p:保留原文件的修改时间,访问时间和访问权限。
  • -q:不显示传输进度条。
  • -r:递归复制整个目录。
  • -v:详细方式显示输出,scp和ssh会显示出整个过程的调试信息,这些信息用于调试连接,验证和配置问题。
  • -c cipher:以cipher将数据传输进行加密,这个选项将直接传递给ssh
  • -F ssh_config:指定一个替代的ssh配置文件,此参数直接传递给ssh
  • -i identity_file:从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh
  • -l limit:限定用户所能使用的带宽,以Kbit/s为单位。
  • -o ssh_option:如果习惯于使用ssh_config中的参数传递方式。
  • -P port:注意是大写的P, port是指定数据传输用到的端口号。
  • -S program:指定加密传输时所使用的程序,此程序必须能够理解ssh的选项。

复制文件

1
2
3
4
5
6
7
scp local_file remote_username@remote_ip:remote_folder
# OR
scp local_file remote_username@remote_ip:remote_file
# OR
scp local_file remote_ip:remote_folder
# OR
scp local_file remote_ip:remote_file
  • 第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名。
  • 第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名。

实例

1
2
3
4
scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music
scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music/001.mp3
scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music
scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music/001.mp3

复制目录

1
2
3
scp -r local_folder remote_username@remote_ip:remote_folder
# OR
scp -r local_folder remote_ip:remote_folder
  • 第1个指定了用户名,命令执行后需要再输入密码。
  • 第2个没有指定用户名,命令执行后需要输入用户名和密码。

实例

1
2
scp -r /home/space/music/ root@www.runoob.com:/home/root/others/
scp -r /home/space/music/ www.runoob.com:/home/root/others/
  • 上面命令将本地 music 目录复制到远程 others 目录下。

说明

  • 从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可。
  • 如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,命令格式如下:
1
2
#scp 命令使用端口号 4588
scp -P 4588 remote@www.runoob.com:/usr/local/sin.sh /home/administrator
  • 使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。

ftp

ftp命令用来设置文件系统相关功能,ftp服务器在网上较为常见,Linux ftp命令的功能是用命令的方式来控制在本地机和远程机之间传送文件,这里详细介绍Linux ftp命令的一些经常使用的命令,相信掌握了这些使用Linux进行ftp操作将会非常容易。

1
ftp(选项)(参数)
  • 选项
    • -d:详细显示指令执行过程,便于排错或分析程序执行的情况。
    • -i:关闭互动模式,不询问任何问题。
    • -g:关闭本地主机文件名称支持特殊字符的扩充特性。
    • -n:不使用自动登录。
    • -v:显示指令执行过程。
  • 参数
    • 主机:指定要连接的FTP服务器的主机名或ip地址。

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
FTP>ascii:设定以ASCII方式传送文件(缺省值)
FTP>bell:每完成一次文件传送,报警提示。
FTP>binary:设定以二进制方式传送文件。
FTP>bye:终止主机FTP进程,并退出FTP管理方式。
FTP>case:当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母。
FTP>cd:同UNIX的CD命令。
FTP>cdup:返回上一级目录。
FTP>chmod:改变远端主机的文件权限。
FTP>close:终止远端的FTP进程,返回到FTP命令状态,所有的宏定义都被删除。
FTP>delete:删除远端主机中的文件。
FTP>dir [remote-directory] [local-file] 列出当前远端主机目录中的文件。如果有本地文件,就将结果写至本地文件。
FTP>get [remote-file] [local-file] 从远端主机中传送至本地主机中。
FTP>help [command] 输出命令的解释。
FTP>lcd:改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录。
FTP>ls [remote-directory] [local-file] 同DIR
FTP>macdef:定义宏命令。
FTP>mdelete [remote-files] 删除一批文件。
FTP>mget [remote-files] 从远端主机接收一批文件至本地主机。
FTP>mkdir directory-name 在远端主机中建立目录。
FTP>mput local-files 将本地主机中一批文件传送至远端主机。
FTP>open host [port] 重新建立一个新的连接。
FTP>prompt:交互提示模。
FTP>put local-file [remote-file] 将本地一个文件传送至远端主机。
FTP>pwd:列出当前远端主机目。
FTP>quit:同BY
FTP>recv remote-file [local-file] 同GE
FTP>rename [from] [to] 改变远端主机中的文件。
FTP>rmdir directory-name 删除远端主机中的目。
FTP>send local-file [remote-file] 同PU
FTP>status:显示当前FTP的状。
FTP>system:显示远端主机系统类。
FTP>user user-name [password] [account] 重新以别的用户名登录远端主。
FTP>? [command]:同HELP. [command]指定需要帮助的命令名称,如果没有指定 command,ftp 将显示全部命令的列表。
FTP>! 从 ftp 子系统退出到外壳。

ssh

ssh命令是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器。

1
ssh(选项)(参数)
  • 选项
    • -1:强制使用ssh协议版本1
    • -2:强制使用ssh协议版本2
    • -4:强制使用IPv4地址。
    • -6:强制使用IPv6地址。
    • -A:开启认证代理连接转发功能。
    • -a:关闭认证代理连接转发功能。
    • -b:使用本机指定地址作为对应连接的源ip地址。
    • -C:请求压缩所有数据。
    • -F:指定ssh指令的配置文件。
    • -f:后台执行ssh指令。
    • -g:允许远程主机连接主机的转发端口。
    • -i:指定身份文件。
    • -l:指定连接远程服务器登录用户名。
    • -N:不执行远程指令。
    • -o:指定配置选项。
    • -p:指定远程服务器上的端口。
    • -q:静默模式。
    • -X:开启X11转发功能。
    • -x:关闭X11转发功能。
    • -y:开启信任X11转发功能。
  • 参数
    • 远程主机:指定要连接的远程ssh服务器。
    • 指令:要在远程ssh服务器上执行的指令。

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!