Linux ssh和scp命令笔记

目录

  • ssh命令
    • 连接远程主机
    • 远程执行命令
    • 挂载远程文件系统
    • 配置ssh
  • scp命令
    • 本地复制到远程
    • 远程复制到本地
    • 其他选项
  • 参考链接

当我们访问远程Linux服务器并进行文件传输时,ssh和scp是最常使用的工具,这篇文章将ssh和scp命令进行记录整理,方便以后记录查找。

ssh命令

连接远程主机

ssh user@hostname

上述命令中的hostname可以是远程主机的IP或者域名。
比如:

ssh [email protected]

ssh命令默认连接远程主机的22端口,但有时候端口被占用,就需要连接到其他端口,此时可以使用如下指令:

ssh -p 1234 [email protected]

远程执行命令

我们可以使用上述命令远程登录到目标主机,然后直接像在本地机器上一样执行各种指令,还有一种方式是在ssh命令中加上需要远程执行的指令。这两种方式都会将远程主机的命令输出回显到本地电脑。下面我们看一下如何远程执行命令:

ssh [email protected] ls -l

上述指令就会枚举远程主机的主目录并回显到本地。

挂载远程文件系统

我们可以使用如下命令挂载远程主机文件系统,这样操作远程主机上的文件会更加方便:

sshfs -o idmap=user user@hostname:/home/user ~/Remote

其中~/Remote指需要挂载到的本地目录。

配置ssh

ssh的配置文件为/etc/ssh/ssh_config,我们可以利用该文件修改ssh的登录标语、端口号、空闲超时时间等配置项。

scp命令

scp命令是Linux系统下基于ssh登录进行安全的远程文件拷贝的命令。

本地复制到远程

scp local_file remote_username@remote_ip:remote_folder 

scp local_file remote_username@remote_ip:remote_file 
 
scp local_file remote_ip:remote_folder 

scp local_file remote_ip:remote_file

前两条命令和后两条命令的区别在于是否指定用户名,前两条命令执行后会被要求输入对应用户的密码,而后两条命令则要求输入一个用户名和该用户名对应的密码。remote_ip后的remote_folder指将本地文件复制到远程主机的对应目录下,而remote_file则是将本地文件复制到远程主机上,并重命名为remote_file设定的名称。

远程复制到本地

从远程复制到本地的命令就是将从本地复制到远程的命令的后两个参数调换顺序:

scp remote_username@remote_ip:remote_file local_folder

scp remote_username@remote_ip:remote_file local_file
 
scp remote_ip:remote_file local_folder

scp  remote_ip:remote_file local_file

其他选项

前面说的scp命令都是简单版本的,完整的scp命令如下所示:

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命令使用协议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的选项。

参考链接

Linux 下 SSH 命令实例指南
Linux scp命令

你可能感兴趣的:(Linux,Linux,远程登陆,ssh,远程文件操作,scp)