SSH、scp和sftp

SSH 客户端的简单使用:

使用ssh客户端远程登录到指定的计算机

$ ssh [-p port] user@remote

  • user 是在远程机器上的用户名,如果不指定的话默认为当前用户
  • remote 是远程机器的地址,可以是 IP域名,或者是 后面会提到的别名
  • portSSH Server 监听的端口,SSH 服务器的默认端口号是 22,不指定则使用默认端口号

提示:

  • 使用 exit 退出当前用户的登录
  • 在工作中,SSH 服务器的端口号很有可能不是 22,如果遇到这种情况就需要使用 -p 选项,指定正确的端口号,否则无法正常连接到服务器

scp使用教程

  • scp 就是 secure copy,是一个在 Linux 下用来进行 远程拷贝文件 的命令
  • 既可以将本地内容拷贝到远程计算机,也可以将远程计算机内容拷贝到本地
命令对应英文作用
scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径secure copy远程复制文件
选项含义
-r若给出的源文件是目录文件,则 scp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
-P若远程 SSH 服务器的端口不是 22,需要使用大写字母 -P 选项指定端口
  • 它的地址格式与 ssh 基本相同需要注意的是,在指定端口时用的是大写的 -P 而不是小写的
  • IP地址的**:** 后面的路径如果不是绝对路径,则以用户的家目录作为参照路径
# 把本地当前目录下的 01.py 文件 复制到 远程 家目录下的 Desktop/01.py
scp -P port 01.py user@remote:Desktop/01.py

# 把远程 家目录下的 Desktop/01.py 文件 复制到 本地当前目录下的 01.py
scp -P port user@remote:Desktop/01.py 01.py

# 加上 -r 选项可以传送文件夹
# 把当前目录下的 demo 文件夹 复制到 远程 家目录下的 Desktop
scp -r demo user@remote:Desktop

# 把远程 家目录下的 Desktop 复制到 当前目录下的 demo 文件夹
scp -r user@remote:Desktop demo

注意:

  • scp 这个终端命令只能在 Linux 或者 UNIX 系统下使用
  • 如果在 Windows 系统中,可以安装 PuTTY,使用 pscp 命令行工具或者安装 FileZilla 使用 FTP 进行文件传输

sftp命令使用教程 

 

  • sftp命令用来登录远程主机来进行和本地的文件交换,登录命令为: 

sftp username@hostname 

  • 默认端口也是22, 如果使用其他端口,例如6666端口,则相应命令修改为: 

sftp -P 6666 username@hostname 

  • 注意此处的-P为大写且写在sftp命令后面

附: sftp的一些基本操作命令

1.get命令 
get命令用来从远程主机获取文件,具体使用例子: 
get file.txt 
获取远程主机当前目录的file.txt 
get /home/remoteuser/file.txt /home/localuser/file2.txt 
获取远程主机指定目录下的文件放到本地指定目录并重命名为file2.txt 总结来说就是get from_where_in_remote to_where_in_local 
2.put命令 
put命令用来将本地的文件放到远程主机, 用法与get用法类似,如 
put file.txt 
是将本地当前目录里的file.txt放到远程主机的当前目录 
put /home/localuser/file.txt /home/remoteuser/file2.txt 
获取本地指定目录下的文件file.txt放到远程主机指定目录并重命名为file2.txt 总结来说就是put from_where_in_local to_where_in_remote
  • 此外在远程主机上可以使用ls cd pwd等操作命令 
  • 但此时若要查看本地相关内容的话需要在命令前面加l表示对本地(local)进行操作.例如 
  • lcd切换本地目录 lls查看本地当前目录下的文件等

不管SCP还是SFTP,都是SSH的功能之一。都是使用SSH协议来传输文件的。不用说文件内容,就是登录时的用户信息都是经过SSH加密后才传输的,所以说SCP和SFTP实现了安全的文件传输。

SCP和CP命令相似,SFTP和FTP的使用方法也类似。SCP和SFTP的共同之处在于「使用SSH将文件加密才传输的」使用「WinSCP」或者「FileZilla」之类的客户端,还可以和Windows之间进行文件传输。

SCP和SFTP的不同之处,首先就是之前提到的,SCP使用「SCP命令」,SFTP则类似「FTP处理文件」的使用方式。它们的不同之处还不止如此,还有「SCP比较简单,是轻量级的,SFTP的功能则比较多」。详细说的话,虽然还有很多不同之处,但2者的最大不同之处在于「SFTP在文件传输过程中中断的话,连接后还可以继续传输,但SCP不行」。由于各种原因导致的文件传输中断是经常讨论的话题,所以这个区别(这里的区别指SFTP能断点续传,SCP则不能)被认为是最大的区别。

无论何时,传输文件时如果不想文件内容被人知道的话,请考虑使用SCP或者SFTP来代替FTP,这样安全性上会更好。

SSH 高级:

  • 免密码登录
  • 配置别名

提示:有关 SSH 配置信息都保存在用户家目录下的 .ssh 目录下

1)免密码登录

步骤

  • 配置公钥

执行 ssh-keygen -t rsa 即可生成 SSH 钥匙,一路回车即可(也可以根据提示输入密码)

  • 上传公钥到服务器

执行 ssh-copy-id -i ~/.ssh/*.pub -p port user@remote,可以让远程服务器记住我们的公钥

  • 配置完成后,再登录远程计算机就无需输入密码,如果在本地端出现 failure ….的只需要添加私钥
ssh-add   ~/.ssh/id_rsa

示意图

非对称加密算法

  • 使用 公钥 加密的数据,需要使用 私钥 解密
  • 使用 私钥 加密的数据,需要使用 公钥 解密

2) 配置别名

每次都输入 ssh -p port user@remote,时间久了会觉得很麻烦,特别是当 user, remoteport 都得输入,而且还不好记忆

配置别名 可以让我们进一步偷懒,譬如用:ssh gale 来替代上面这么一长串,那么就在本地计算机~/.ssh/config 里面追加以下内容:

Host gale
    HostName 服务器ip地址
    User gale
    Port 22

保存之后,即可用 ssh gale实现远程登录了,scp 同样可以使用

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值